如何将数据从第二个活动传递到第一个活动?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

我有2个活动,Activity1Activity2

Activity1我有一个按钮TextView。当点击该按钮时Activity2被启动。

Activity2我有一个EditText

提问于
用户回答回答于

启动Activity2 startActivityForResult并使用setResult方法将数据从Activity2发送回Activity1。在活动1,你需要重写onActivityResult用于更新TextViewEditText从活性2数据。

例如:

Activity1中,将Activity2启动为:

Intent i = new Intent(this, Activity2.class);
startActivityForResult(i, 1);

Activity2中setResult用于发回数据:

Intent intent = new Intent();
intent.putExtra("editTextValue", "value_here")
setResult(RESULT_OK, intent);        
finish();

Activity1中,通过以下方式接收数据onActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 1) {
         if(resultCode == RESULT_OK) {
             String strEditText = data.getStringExtra("editTextValue");
         }     
    }
} 
用户回答回答于

Activity2中:

@Override
public void onBackPressed() {
    String data = mEditText.getText();
    Intent intent = new Intent();
    intent.putExtra("MyData", data);
    setResult(resultcode, intent);
}

Activity1中:

onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if(resultCode == RESULT_OK) {
            String myStr=data.getStringExtra("MyData");
            mTextView.setText(myStr);
        }
    }
}

扫码关注云+社区