android怎么从一个activity获取另一个activity的信息

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android怎么从一个activity获取另一个activity的信息相关的知识,希望对你有一定的参考价值。

比如说我要设置一个获取消息activity,另一个是发送消息的,当那个发送消息的activity写了信息并发送之后,获取消息的activity显示那个消息

使用Broadcast广播即可

android系统中,BroadcastReceiver的设计初衷就是从全局考虑的,可以方便应用程序和系统、应用程序之间、应用程序内的通信

在获取消息activity中建立BroadcastReceiver内部类,并且注册广播

示例代码如下

//接受消息的activity
public class MainActivity extends Activity 

private InnerReceiver receiver = new InnerReceiver();

@Override
protected void onCreate(Bundle savedInstanceState) 
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);



@Override
protected void onRestart() 
super.onRestart();
//注册广播
IntentFilter filter = new IntentFilter("test");
registerReceiver(receiver, filter);


@Override
protected void onStop() 
super.onStop();
取消广播
unregisterReceiver(receiver);


public class InnerReceiver extends BroadcastReceiver

@Override
public void onReceive(Context context, Intent intent) 
//使用intent获取发送过来的数据
String msg = intent.getStringExtra("msg");



package com.example.demo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

//发送消息的activity
public class SendActivity extends Activity 

private Button btn;
private EditText text;
@Override
protected void onCreate(Bundle savedInstanceState) 
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button)findViewById(R.id.button);
text = (EditText)findViewById(R.id.text);
btn.setOnClickListener(new OnClickListener() 

@Override
public void onClick(View v) 
Intent intent = new Intent("test");
intent.putExtra("msg", text.getText().toString());
sendBroadcast(intent);

);


参考技术A Intent(意图)
你搜索这个关键词就有很多你想要的内容,并且比我说的好,我也就不去复制粘贴了本回答被提问者采纳
参考技术B

    发送消息是指短消息吗?那直接在接受消息的那个activity用content provider获取系统短消息就行了。

    不是的话会发完信息跳转到接受消息的activity?那样使用Intent的putExtra()方法,把消息加进去就好了

    不是跳转可以在第一个activity中发消息时广播一下,然后注册一个BroadcastReceiver,接受消息更新接受消息activity中的信息

    还是说你要做个聊天的?那是两台手机了,只能用网络通信。

参考技术C 你可以百度搜索一下
startActivity,startActivityForResult

android 程序 如何从一个ACTIVITY跳转到另一个ACTIVITY,我的两个activity都在manifest上定义过的

package com.example.activity;
import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;
public class MainActivity extends Activity private Button button1 = null; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button1=(Button)findViewById(R.id.button1); button1.setText(R.string.first); button1.setOnClickListener(new Button.OnClickListener() public void onClick(View v) // TODO Auto-generated method stub button1.setText(R.string.second); Intent intent = new Intent(); intent.setClass(MainActivity.this, otherActivity.class); startActivity(intent); );
上面是第一个界面
下面是第二个界面,即想要跳转到的界面

package com.example.activity;
import android.os.Bundle;import android.app.Activity;import android.widget.TextView;
public class otherActivity extends Activity private TextView myTextView = null; @Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.other); myTextView=(TextView)findViewById(R.id.textView1); myTextView.setText(R.string.second);
程序贬义没报错,也能运行,显示第一个界面,但是点按钮之后没有正确跳转至下一个ACTIVITY,而是提示程序异常,然后退出

manifest.xml中的 <Activity />改成<activity /> 参考技术A 楼主把报的异常贴出来看看(logcat中)
看代码没什么问题追问

上面是ERROR和WARN的LOG 这个好难懂啊

以上是关于android怎么从一个activity获取另一个activity的信息的主要内容,如果未能解决你的问题,请参考以下文章

android 程序 如何从一个ACTIVITY跳转到另一个ACTIVITY,我的两个activity都在manifest上定义过的

如何从另一个类(它扩展了 Activity)方法,Android 调用 CCColorLayer 类的方法?

安卓编程 怎么把一个bitmap从一个activity传到另一个activity里?如果不能穿bi

android activity之间怎么跳转?

Android 怎么把一个activity中定义的变量传给另一个activity中的textview

❤️Android精进之路-05怎么创建Activity,如何启动另一个Activity,干货满满,建议收藏❤️