当我在Android中按回按钮时,如何在活动之间传递数据?

时间:2015-03-23 08:50:06

标签: android android-intent bundle

我尝试使用以下方式在活动之间发送数据:

活动2

Bundle bloc = new Bundle();
bloc.putString("DataLoc", et1.getText().toString());
Intent intent = new Intent(this, Activity2.class);

intent.putExtras(bloc);
活动1

Intent iinf = getIntent();
Bundle binf = iinf.getExtras();

if (binf != null) {
  String data = binf.getString("DataInf");
  tv_1.setText(data);
  tv_1.setText(getIntent().getExtras().getString("DataInf"));

}// end if

我的问题

我在Activity2上打开了Activity1 under Activity2,当我按下后退按钮时,我需要在一个TextView,EditText或类似文件上显示包,但只有我才能显示{{1}方法。

我尝试使用onCreateonResume,但......不可能。

有什么建议吗?

4 个答案:

答案 0 :(得分:3)

  

当我按下后退按钮时,如何在活动之间传递数据   的Android?

使用StartActivityForResult启动第二个活动,并使用父活动中的onActivityResult使用从第二个活动收到的TextView进行更新

在第二个活动中覆盖onBackPressed()方法,并使用Intent调用setResult发送数据:

    @Override
    public void onBackPressed() {
        Intent data = new Intent();
        // add data to Intent 
        setResult(Activity.RESULT_OK, data);
       super.onBackPressed();
}

答案 1 :(得分:1)

您可以使用onActivityResult();

发送

Intent in= new Intent();

setResult(Activity.RESULT_OK, in);
finish();

For Recieving

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  switch(requestCode) {
    case (abc) : {
      if (resultCode == Activity.RESULT_OK) {
      // your stuff
      }
      break;
    } 
  }

}

答案 2 :(得分:0)

我认为您正在寻找startActivityForResult()onActivityResult()方法。 Here您可以找到如何使用它的示例。

答案 3 :(得分:0)

使用'DataLoc'字符串获取活动中所需的值。您必须使用startActivityForResult()和onActivityResult()方法,并使用setResult()方法获取值。