Activity篇之Activity之间通信
来源:互联网 发布:js根据斜线截取字符串 编辑:程序博客网 时间:2024/05/31 19:22
Activity之间的通信方式,暂时我能想到的有3种分别是:1.Intent方式,2.BroadcastReciver方式下面就用来代码来描述下
Intent方式一般分为2种:1.传统Intent请求方式2.通过startActivityForResult()+setResult()方式
针对传统的Intent请求方式,这里需要结合启动模式表现更佳.
第一种方式代码如下:
package intent1.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import cn.activitycommunication.com.R;/** * Created by Administrator on 2016/11/26 0026. */public class Activity1 extends Activity{ private TextView tetxtview; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1); tetxtview=(TextView) findViewById(R.id.tetxtview); btn=(Button) findViewById(R.id.btn); btn.setText("跳转到Activity2"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(Activity1.this,Activity2.class); intent.putExtra("data","123"); startActivity(intent); } }); } @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); tetxtview.setText("收到信息:【"+intent.getStringExtra("data")+"】"); }}
package intent1.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import cn.activitycommunication.com.R;/** * Created by Administrator on 2016/11/26 0026. */public class Activity2 extends Activity{ private TextView tetxtview; private Button btn; private String data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1); data=getIntent().getStringExtra("data"); tetxtview=(TextView) findViewById(R.id.tetxtview); tetxtview.setText("收到信息:【"+data+"】"); btn=(Button) findViewById(R.id.btn); btn.setText("回到到Activity1"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(Activity2.this,Activity1.class); intent.putExtra("data","456"); startActivity(intent); } }); }}运行截图:
startActivityForResult+setResult方式:
package intent2.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import cn.activitycommunication.com.R;/** * Created by Administrator on 2016/11/26 0026. */public class Activity1 extends Activity{ private TextView tetxtview; private Button btn; private final int REQUESTCODE=1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1); tetxtview=(TextView) findViewById(R.id.tetxtview); btn=(Button) findViewById(R.id.btn); btn.setText("跳转到Activity2"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Activity1.this, Activity2.class); intent.putExtra("data", "123"); startActivityForResult(intent, REQUESTCODE); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { super.onActivityResult(requestCode, resultCode, intent); if(resultCode==RESULT_OK) { if(requestCode==REQUESTCODE) { tetxtview.setText("收到信息:【"+intent.getStringExtra("data")+"】"); } } }}
package intent2.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import cn.activitycommunication.com.R;/** * Created by Administrator on 2016/11/26 0026. */public class Activity2 extends Activity{ private TextView tetxtview; private Button btn; private String data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1); data=getIntent().getStringExtra("data"); tetxtview=(TextView) findViewById(R.id.tetxtview); tetxtview.setText("收到信息:【"+data+"】"); btn=(Button) findViewById(R.id.btn); btn.setText("回到到Activity1"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=getIntent(); intent.putExtra("data","456"); setResult(RESULT_OK, intent); finish(); } }); }}运行截图:
3.广播方式
package broadcast.activity;import android.app.Activity;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import cn.activitycommunication.com.R;/** * Created by Administrator on 2016/11/26 0026. */public class Activity1 extends Activity{ private TextView tetxtview; private Button btn; private MyBroadCastReciver reciver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1); reciver=new MyBroadCastReciver(); IntentFilter intentFilter=new IntentFilter(); intentFilter.addAction("com.action.broadcast"); registerReceiver(reciver, intentFilter); tetxtview=(TextView) findViewById(R.id.tetxtview); btn=(Button) findViewById(R.id.btn); btn.setText("跳转到Activity2"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Activity1.this, Activity2.class); intent.putExtra("data", "123"); startActivity(intent); } }); } class MyBroadCastReciver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { tetxtview.setText("收到信息:【"+intent.getStringExtra("data")+"】"); } } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(reciver); }}
package broadcast.activity;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import cn.activitycommunication.com.R;/** * Created by Administrator on 2016/11/26 0026. */public class Activity2 extends Activity{ private TextView tetxtview; private Button btn; private String data; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity1); data=getIntent().getStringExtra("data"); tetxtview=(TextView) findViewById(R.id.tetxtview); tetxtview.setText("收到信息:【"+data+"】"); btn=(Button) findViewById(R.id.btn); btn.setText("回到到Activity1"); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent("com.action.broadcast"); intent.putExtra("data","456"); sendBroadcast(intent); finish(); } }); }}运行截图:
下面附上Demo
0 0
- Activity篇之Activity之间通信
- Activity之间的通信
- Activity之间的通信
- Activity之间通信
- Activity之间的通信
- Android Activity之间通信
- Activity之间通信
- Activity之间通信
- Activity之间通信
- Activity 之间的通信
- Activity之间通信
- Activity之间实时通信
- Activity之间的通信
- Activity之间通信----皮毛
- Activity生命周期 与 Activity 之间的通信
- Activity与Activity之间的通信
- Android中Activity之间通信
- Activity之间的通信(Intent)
- UITextView滚动到顶部
- SDH介绍及其原理和发展方向
- 【J2EE】--线程介绍
- imooc js进阶篇 8-17编程练习
- 快速排序的几种方法及其优化
- Activity篇之Activity之间通信
- Android 推荐几款好用的开源作品(一)之ViewPager指示器
- Activity启动流程,界面绘制到事件处理的整个流程(基于Android6.0源码)(1)
- 【ARM-Linux开发】内核3.x版本之后设备树机制
- centos7.2编译安装nginx-1.10.2
- jsp与el
- 程序员也是会浪漫的->打造浪漫的Android表白程序
- starUML破解-version2.8.0
- 查找第一个匹配子串位置,如果返回的是s1长度len1表示没有找到