Android多个Activity
16lz
2021-01-25
使用多个Activity首先在AndroidManifest.xml文件中声明:
<activity android:name="com.yaku.B"/>
如有A和B两个Activity,由A打开B,并传递参数给B:
AActivity
//打开 B ActivityIntent intent = new Intent(A.this, B.class);//为Intent设置要激活的组件/*intent.putExtra("name", "小九九");intent.putExtra("age", 26);*/Bundle bundle = new Bundle();bundle.putString("name", "小九九");bundle.putInt("age", 26);intent.putExtras(bundle);//写法一 intent.setClass(A.this, B.class);//设置要激活的组件//写法二 intent.setComponent(new ComponentName(A.this, B.class));//设置要激活的组件startActivity(intent);
B Activity得到参数:
Intent intent = this.getIntent();//得到激活它的IntentString name = intent.getStringExtra("name");int age = intent.getExtras().getInt("age");//第二种写法
B 处理完后要返回结果给A则不能使用startActivity(intent); 来启动B
而是startActivityForResult(intent, 100); 第二个参数为请求码。
同时A要重写onActivityResult 方法,该方法为系统自动调用。如:
A Activity:
public void onCreate(Bundle savedInstanceState) {Intent intent = new Intent(A.this, B.class);//为Intent设置要激活的组件/*intent.putExtra("name", "小九九");intent.putExtra("age", 26);*/Bundle bundle = new Bundle();bundle.putString("name", "小九九");bundle.putInt("age", 26);intent.putExtras(bundle);startActivityForResult(intent, 100);//第二个参数为设置的请求码}@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {Toast.makeText(this, data.getStringExtra("result"), 1).show();//得到返回结果super.onActivityResult(requestCode, resultCode, data);}
B Activity:
Intent intent = new Intent();intent.putExtra("result", "这是处理结果");setResult(20, intent);//设置返回数据finish();//关闭activity
更多相关文章
- android 软件开发错误-解决记录
- android 组件使用()
- 详解Android中通过Intent类实现组件间调用的方法
- Android(安卓)Adapte中getItemViewType越界问题
- context.obtainStyledAttributes 研究
- Android之activity跳转并且回调
- Android(安卓)ListView的OnItemClickListener()参数详解
- Android(安卓)模糊搜索rawquery bind or column index out of ra
- android实现简易计算器