Android(安卓)Intent参数传递
16lz
2021-01-24
Android Intent参数传递Android参数传递有两种方式,1.是从一个Activity传递参数到第二个Activity并在第二个Activity获取数据2.是从第二个Activity关闭后将参数传递到第一个Activity(1)第一种:public class FirstDemoActivity extends Activity { private Button button3; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.first); button3=(Button) this.findViewById(R.id.button3); editText=(EditText) this.findViewById(R.id.editText1); button3.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub String content=editText.getText().toString(); Intent intent=new Intent(FirstDemoActivity.this,SecondDemoActivity.class); //可以把要传递的参数放到一个bundle里传递过去,bundle可以看做一个特殊的map. Bundle bundle=new Bundle(); bundle.putString("result", "第一个activity的内容"); bundle.putString("content",content); intent.putExtras(bundle); //也可以用这种方式传递. //intent.putExtra("result", "第一个activity的内容"); startActivity(intent); } }); }}接收参数方法public class SecondDemoActivity extends Activity { private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.second); textView=(TextView) this.findViewById(R.id.textView3); Intent intent=getIntent(); String result=intent.getStringExtra("result"); String content=intent.getStringExtra("content"); textView.setText(result+" : "+content); }}(2)第二种第二种方式需要在跳转到第二个Activity的时候指定requestCode,同时第二个Activity关闭之前也需要指定resultCode,这样我们在获取返回值的时候才能够准确判断是否为我们需要的数据1.跳转到第二个Activity并指定resultCodeprivate OnClickListener btnAdd_click = new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setClass(getApplicationContext(), LifingAddActivity.class); // startActivity(intent); /* * 如果希望启动另一个Activity,并且希望有返回值,则需要使用startActivityForResult这个方法, * 而不是startActivity方法 * 第一个参数是Intent对象,第二个参数是一个requestCode值,如果有多个按钮都要启动Activity * ,则requestCode标志着每个按钮所启动的Activity */ startActivityForResult(intent, 1000); // 设置切换动画,从右边进入,左边退出 overridePendingTransition(R.anim.in_from_right, R.anim.out_from_left); }};2.在第一个Activity重写onActivityResult方法/** * 弹出的Activity关闭后所触发的事件 */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode, resultCode, data); // 根据requestCode判断是否为当前Activity打开的另一个Activity,根据resultCode判断具体执行什么操作关闭的第二个Activity if (requestCode == 1000 && resultCode == 1) { new Thread() { public void run() { String result=intent.getStringExtra("result"); } }.start(); }}3.在第二个Activity关闭前指定resultCode和data/** * 保存按钮事件 */private OnClickListener btnSave_click = new OnClickListener() { @Override public void onClick(View v) { if (CheckInput()) { new Thread() { public void run() { Bundle data = new Bundle(); data.putString("result", "success"); Intent intent=getIntent(); intent.putExtras(data); setResult(1, intent); finish(); // finish当前activity overridePendingTransition(R.anim.in_from_left, R.anim.out_from_right); } }.start(); } }};
更多相关文章
- android studio基础教程:3.美化按钮
- Android(安卓)NDK 错误解决方法(持续更新ing)
- 安卓复选框(Checkbox)
- Android(安卓)javah -jni 找不到类的解决方法
- Android定时器实现的几种方法
- android BaseAdapter优化
- Android:在Eclipse下开发android应用产生的问题及解决方法
- android判断软件是否第一次运行的方法
- Android(安卓)AlertDialog 无法弹出输入法