主要用到
startActivityForResult方法
上代码
public class OneActivity extends AppCompatActivity {
Button one_btn;
TextView one_tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_one);
one_btn=(Button)findViewById(R.id.one_btn);
one_tv=(TextView)findViewById(R.id.one_tv);
one_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(OneActivity.this,TwoActivity.class);
startActivityForResult(intent,10001);
}
});
}
/**
* Dispatch incoming result to the correct fragment.
*
* @param requestCode 请求码10001
* @param resultCode 返回码Activity.RESULT_OK
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==10001&&resultCode== Activity.RESULT_OK){
one_tv.setText( data.getStringExtra("text"));
}
}
}
public class TwoActivity extends AppCompatActivity {
Button two_btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_two);
two_btn=(Button)findViewById(R.id.two_btn);
two_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String text="fxr";
Intent intent=new Intent();
intent.putExtra("text",text);
setResult(Activity.RESULT_OK,intent);
finish();
}
});
}
}
先从第一个界面跳转到第二个界面并且使用
startActivityForResult(intent,10001);
10001为请求码
Intent intent=new Intent(OneActivity.this,TwoActivity.class);
startActivityForResult(intent,10001);
第二个界面吧字符串“fxr”放到intent中返回上一个界面
设置setREsult的返回码为Activity.RESULT_OK
String text="fxr";
Intent intent=new Intent();
intent.putExtra("text",text);
setResult(Activity.RESULT_OK,intent);
finish();
从写父类的onActivityResult方法,判断请求码和返回码后吧data的数据返回给text
/**
* Dispatch incoming result to the correct fragment.
*
* @param requestCode 请求码10001
* @param resultCode 返回码Activity.RESULT_OK
* @param data
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode==10001&&resultCode== Activity.RESULT_OK){
one_tv.setText( data.getStringExtra("text"));
}
}