1.通过intent传递数据
通过Intent传递方法核心就是通过putEntry来传递方法。
传递代码:
intent.putExtra("KEY_HELLO","helloword");
接受代码:
Intent intent=getIntent();
String value=intent.getStringExtra("KEY_HELLO");
不过需要注意的是,在实际过程中,往往是很多个人写不同的Activity,那么为了保证
key统一,就必须随时沟通,程序就变的不太好维护,我们可以使用下面的办法。
2.静态工厂设计模式传递数据
我们让Activity保留自己的key值,并且封装成一个静态函数,那么
我们只需要传递的value就行了。
看下面的代码
//使用一个静态方法保证所有的Key值一样
public static Intent newIntent(Context context,String value)
{
Intent intent=new Intent(context,ActivityDemo.class);
intent.putExtra("KEY",value);
return intent;
}
Intent intent=ActivityDemo.newIntent(getApplicationContext(),"hello");
返回数据给之前的Activity
这时候我们就需要用到两个方法:
startActivityForResult(intent,0);//第二个参数是请求码
protected void onActivityResult(int requestcode,int resultcode, Intent data)
需要注意的是第二个函数是只有第二个页面退出时才会调用。
代码如下:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent();
intent.putExtra("result","hello ");
setResult(0,intent);
finish();//关闭当前Activity
}
});
protected void onActivityResult(int requestcode,int resultcode,Intent data)
{
super.onActivityResult(requestcode,resultcode,data);
if(requestcode==0&&data!=null)
{
String result=data.getStringExtra("result");
Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG);
}
}