我有2项活动,Activity1
和Activity2
。
在Activity1中我有EdiText
和ImageView
。单击按钮时,将启动Activity2。
在Activity2中,我有一个列表视图。它包含Image
和TextView
。
我在imageview中的Activity2中显示了从listview图像和textview中检索到的数据,在Activity1中显示了editext resp。现在我在Activity1中对editext和imageview进行了一些更改,我需要将此更改再次传递给活动2中的列表视图图像和文本。
有人可以帮助我使用代码来完成这项工作吗?
答案 0 :(得分:1)
更好的想法是使用startActivityForResult。
它与此类似的问题: How to manage `startActivityForResult` on Android?
答案 1 :(得分:0)
在当前的activity1中,创建一个意图
Intent i = new Intent(getApplicationContext(), Activity2.class);
i.putExtra(key, value);
startActivity(i);
然后在另一个activity2中,检索这些值。
Bundle extras = getIntent().getExtras();
if(extras !=null) {
String value = extras.getString(key);
}
答案 2 :(得分:0)
从FirstActivity
使用SecondActivity
方法<{1}}致电startActivityForResult()
代码:
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
在SecondActivity
中设置要返回FirstActivity
的数据。
例如:在SecondActivity
中,如果要在项目上发回数据集onclicklistener并使用此代码:
Intent returnIntent = new Intent();
returnIntent.putExtra( “图像”,图像);
returnIntent.putExtra( “标题”,标题);
的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