在Activity1中,我输入了一些数据,如名称和地址。当我单击下一个按钮时,将会有另一个输入表单。我想要做的是,当我点击BACK时,我将返回到Activity1并显示我之前输入的数据。
请帮助:)
=============
更新:活动1
private void startActivityForResult()
{
TextView textname = (TextView) findViewById(R.id.username);
TextView textaddress = (TextView) findViewById(R.id.useraddress);
Intent intent = new Intent(this, GetInformation.class);
//intent.putExtras(getIntent());
intent.putExtra("username", textname.getText().toString());
intent.putExtra("useradd", textaddress.getText().toString());
startActivityForResult(intent, 0);
}
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
TextView textname = (TextView) findViewById(R.id.username);
TextView textaddress = (TextView) findViewById(R.id.useraddress);
textname.setText(data.getStringExtra("returnname").toString());
textaddress.setText(data.getStringExtra("returnadd").toString());
}
活性2
private void startActivityForResult()
{
final String username;
final String useraddress;
Intent intent = getIntent();
//intent.putExtras(getIntent());
username = getIntent().getStringExtra("username");
useraddress = getIntent().getStringExtra("useradd");
intent.putExtra("returnname", username);
intent.putExtra("returnadd", useraddress);
setResult(0, intent);
}
答案 0 :(得分:3)
在Android中有一种简单的方法:startActivityForResult
。基本上,当您启动活动时,您说您期望得到一个结果。然后,其他活动可以添加将返回到起始活动的信息。以下是来自官方文档的非常简单的代码示例:
public class MyActivity extends Activity {
...
static final int PICK_CONTACT_REQUEST = 0;
protected boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER) {
// When the user center presses, let them pick a contact.
startActivityForResult(
new Intent(Intent.ACTION_PICK,
new Uri("content://contacts")),
PICK_CONTACT_REQUEST);
return true;
}
return false;
}
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == PICK_CONTACT_REQUEST) {
if (resultCode == RESULT_OK) {
// A contact was picked. Here we will just display it
// to the user.
startActivity(new Intent(Intent.ACTION_VIEW, data));
}
}
}
}
您可以在Activity page in the official doc(“开始活动”和“获得结果”部分)上获得有关所有这些内容的更完整描述。
答案 1 :(得分:0)
在方法onSaveInstanceState中保存Activity1状态,然后在方法
中保存void onCreate(Bundle savedInstanceState)
您可以使用savedInstanceState恢复状态。
或者,如果您希望将输入的数据传递给第二个活动,则可以将数据置于意图中。 样品:
Intent i = new Intent(FirstActivity.this, SecondActivity.class);
i.putExtra("Key", "Value");
startActivityForResult(i, 0);
在第二个活动中,您可以获得数据:
getIntent().getStringExtra("Key");
返回第二项活动的结果:
Intent data = new Intent();
data.put("key", "value");
setResult(RESULT_OK, data);
然后您可以使用
检索第一个活动中的数据protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
data.getStringExtra("key");
}