1

我有 2 项活动,Activity1并且Activity2.

在 Activity1 我有一个EdiTextImageView。单击按钮时,将启动 Activity2。

在 Activity2 我有一个列表视图。它包含ImageTextView

我已经在 Activity1 的 imageview 和 editext 分别显示了从 Activity2 的 listview image 和 textview 检索到的数据。现在我对 Activity1 中的 editext 和 imageview 进行了一些更改,我需要再次将这些更改传递给 Activity 2 中的 listview 图像和文本。

有人可以帮我编写代码来完成这项工作吗?

4

3 回答 3

1

更好的主意是使用 startActivityForResult。

它与此类似的问题: How to manage `startActivityForResult` on Android?

于 2013-09-23T11:16:56.310 回答
0

在您当前的活动1中,创建一个意图

Intent i = new Intent(getApplicationContext(), Activity2.class);
i.putExtra(key, value);
startActivity(i);

然后在另一个活动 2 中,检索这些值。

Bundle extras = getIntent().getExtras(); 
if(extras !=null) {
    String value = extras.getString(key);
}
于 2013-09-23T11:15:08.820 回答
0

从您的FirstActivity电话中SecondActivity使用 usingstartActivityForResult()方法

代码:

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

在您的SecondActivity集合中,您想要返回的数据FirstActivity

例如:SecondActivity如果您想发回数据集,请在项目上设置一个 onclicklistener 并使用以下代码:

意图 returnIntent = new Intent(); returnIntent.putExtra("image",image); returnIntent.putExtra("title",title); setResult(RESULT_OK,returnIntent);
结束();

如果用户没有选择任何列表项并按下Back Button. 在您MainActivity使用此代码时。

@Override
public void onBackPressed() {
    Intent returnIntent = new Intent();
    setResult(RESULT_CANCELED, returnIntent);        
    finish();
}

现在在你的类中为() 方法FirstActivity编写以下代码onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

  if (requestCode == 1) {

     if(resultCode == RESULT_OK){      
         String image=data.getIntExtra("result");
         String title=data.getStringExtra("title");
         ImageView img = (ImageView) findViewById(R.id.imageid);
         TextView txt = (TextView) findViewById(R.id.txtid);
         image.setImageResource(image);
         txt.setText(title);
     }
     if (resultCode == RESULT_CANCELED) {    
         //Write your code if there's no result
     }
  }
}//onActivityResult
于 2013-09-23T11:48:29.953 回答