activity的启动方式 requestCode和resultCode的区别
来源:互联网 发布:上海游安网络 编辑:程序博客网 时间:2024/06/05 19:29
Activity的启动方式:
1.startActivity(intent)
Intent intent=new Intent(MainActivity.this,Bactivity.class); startActivity(intent);
2.startActivityForResult(Intent)
Intent intent2=new Intent(MainActivity.this,Bactivity.class); startActivityForResult(intent2, 10002);
3.requestCode和resultCode的用法
3.1 requestCode是用来标识请求的来源: Mainactivity中有两个按钮都是要启动Bactvity,那么为了区分是哪一个按钮启动的(请求的来源)就在启动的时候使用requestCode来标识
要做的操作如下:点击返回到Mainactivity时候,TextView会显示由哪个按钮启动的Bactvity
public class MainActivity extends Activity implements OnClickListener{ Button btn1,btn2; TextView mTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btn1).setOnClickListener(this); findViewById(R.id.btn2).setOnClickListener(this); mTextView=(TextView)findViewById(R.id.textView2);//文字显示 } @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn1: Intent intent=new Intent(MainActivity.this,Bactivity.class); startActivityForResult(intent, 10001); break; case R.id.btn2: Intent intent2=new Intent(MainActivity.this,Bactivity.class); startActivityForResult(intent2, 10002); break; } }// 当Bactivity关闭之后会调用该方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { switch(requestCode){ case 10001: //按钮1启动的数据处理 mTextView.setText("是button1启动的"); break; case 10002: //按钮2启动的数据处理 mTextView.setText("是button2启动的"); break; } }}点击按钮启动Bactvity之后,按返回,那么Mainactivity会首先调onActivityResult方法,在这个方法里面根据requestCode区分进行相应的处理即可
3.2 resultCode的用法:resultCode是用来标识返回的数据来自哪一个activity
Main activity中 两个按钮分别启动不同的activity
@Override public void onClick(View v) { switch (v.getId()){ case R.id.btn1: Intent intent=new Intent(MainActivity.this,Bactivity.class); startActivityForResult(intent, 10001); break; case R.id.btn2: Intent intent2=new Intent(MainActivity.this,Cactivity.class); startActivityForResult(intent2,10002); break; } }// 当Bactivity关闭之后会调用该方法 @Override protected void onActivityResult(int requestCode, int resultCode, Intent intent) { String data=intent.getStringExtra("data"); switch(resultCode){ case 10001: //处理来自Bactivity的数据 mTextView.setText(data); break; case 10002: //处理来自Cctivity的数据 mTextView.setText(data); break; } }Bactvity中Intent intent=new Intent(); intent.putExtra("data","the data from Bactviity");// // 设置结果,并进行传送 this.setResult(10001, intent);Captivity中Intent mIntent = new Intent(); mIntent.putExtra("data", "the data from Cactivity"); // 设置结果,并进行传送 this.setResult(10002, mIntent);按返回Mainactivity中的onActivtyResult的方法会被触发,然后即可对来自不同的activity的数据进行处理
0 0
- activity的启动方式 requestCode和resultCode的区别
- requestCode和resultCode的区别
- requestCode 和 resultCode 的区别
- activity 的requestCode和resultCode(通过)
- startActivityForResult() 中requestCode 和 resultCode 的作用
- startActivityForResult() 中requestCode 和 resultCode 的作用
- startActivityForResult() 中requestCode 和 resultCode 的作用
- startActivityForResult() 中requestCode 和 resultCode 的作用
- 关于requestCode 和 resultCode的混淆
- startActivityForResult() 中requestCode 和 resultCode 的作用
- 8、requestCode 和resultCode+9、activity的生命周期+10、activity生命周期的三大分类
- 详细解释下多个Activity之间 startActivityForResult 时,requestCode 和 resultCode 的传递和用法
- requestCode 与 resultCode 的区分
- Activity,intent, requestCode, resultCode
- android使用startActivityForResult时,requestCode和resultCode的作用
- requestcode resultcode区别,运用
- requestCode 和 resultCode
- requestCode 和 resultCode .
- linux中使用svn客户端
- ZeroMQ+VS2010配置
- Android内存泄漏的各种原因详解
- 搭建Maven私服
- Linux下用C语言实现ls -l的功能
- activity的启动方式 requestCode和resultCode的区别
- 设计模式--装饰者模式
- hdu1698 Just a Hook 线段树延迟标记区间更新 求加权区间总和
- java使用POI的导入导出
- 笔记 - Java 进制和位运算
- 关于大型网站技术演进的思考(四)--存储的瓶颈(4)
- CodeForces 366A- Dima and Guards
- http通讯协议详解
- EasyUI的load,reload,loadData