活动间的数据传递

来源:互联网 发布:看youtube软件 编辑:程序博客网 时间:2024/05/16 14:17

数据传递包含数据的发送与接收
一、向一个活动传递数据(startActivity)
1、数据发送
使用Intent的putExtra的系列重载方法。可以把想要传递的数据暂存在Intent中。

bt5.setOnClickListener(new View.OnClickListener() {   @Override    public void onClick(View v) {      Intent intend=new Intent(MainActivity.this,resultactivity.class);      String data="hello luowei!!!!";      intend.putExtra("extra_data",data);      startActivity(intend);        }  });

2、数据接收
启动了另一个活动后,只需要把这些数据再从Intent中取出就可以了。

 protected void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);               setContentView(R.layout.activity_resultactivity);     Intent intent=getIntent();     //用于获取启动本活动的Intent     String data=intent.getStringExtra("extra_data");     /*     根据相应的getXXX函数来Intent获取数据。         getStringExtra():获取字符串型的数据。         getIntExtra():获取整型的数据。         getBooleanExtra():获取布尔型的数据。     */     TextView tv=(TextView)findViewById(R.id.text1);     tv.setText(data);    }

二、向上一个活动返回数据(startActivityForResult)
1、启动一个活动并数据发送

bt5.setOnClickListener(new View.OnClickListener() {   @Override    public void onClick(View v) {      Intent intend=new Intent(MainActivity.this,resultactivity.class);      String data="hello luowei!!!!";      intend.putExtra("extra_data",data);      startActivityForResult(intend,1);      //第二个参数是请求码,用于在回调中判断数据的来源,只要是唯一值就可以了。        }  });

2、返回数据给上一个活动
当前活动是使用startActivityForResult启动的,当前活动被销毁时,将毁掉上一个活动的onActivityResult()方法。
在当前活动中,将需要返回的数据存放在构建的intent中。
然后调用setResult函数,向上一个活动返回数据。第一个参数用于向上一个活动返回处理结果,一般只有REUSLT_OK和RESULT_CANCELED。第二个参数传递带有数据的Intent。
最后使用finish()结束当前活动即可。
返回的两种方式:
(1)按键使用监听事件的方式调用

bt5.setOnClickListener(new View.OnClickListener() {   @Override   public void onClick(View v) { Intent in=new Intent();        in.putExtra("data_ret","hello,this is the message returned");    setResult(RESULT_OK,in);    finish();//销毁当前活动。        }  });

(2)通过Back键返回到上一个活动时,会调用onBackPressed回调函数。

  @Override  public void onBackPressed() {       Intent in=new Intent();        in.putExtra("data_ret","hello,this is the message returned");        setResult(RESULT_OK,in);        finish();    }
原创粉丝点击