那么,我有两个活动。在第一个中,我有一个列表,我在其中放置了一些数据和一个按钮,用于进入第二个活动。在第二个,我有两个edittext和一个按钮(保存按钮)。当我在EditTexts中引入一些数据时,我将数据保存在第一个活动(列表)中。当我选择列表中的一个项目时,我可以转到第二个活动并修改项目的内容。因此,我显示了引入数据的列表,但我不知道在再次编辑EditTexts后如何保存新数据。我使用onItemClick从列表中选择一个项目。我知道我必须将位置和数据传递给第二个活动,我必须在第二个活动中检索,然后我必须再次向第一个活动发送为项目位置更改的新数据。有什么好主意吗?
尝试从活动中获取结果。
总结文章:
static final int REQUEST_CODE = 1; // The request code
...
private void itemClicked() {
Intent intent = new Intent(this, SecondActivity.class);
// Add any data that you wish to send
intent.putExtra("DATA", "value");
startActivityForResult(pickContactIntent, REQUEST_CODE);
}
在您的第二个活动中,接收您希望修改的数据:
String valueToChange = getIntent().getExtras().getString("DATA");
然后把它放在Edit文本中,或者你想对它做什么,当你完成后,把它设置为结果包。
// Create the result Intent
Intent intent = new Intent();
intent.putExtra("RESULT", "YourNewString");
setResult(Activity.RESULT_OK, intent);
finish();
在你的第一个活动中,重写onActivityResult
以获得值。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request it is that we're responding to
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
String newString = data.getExtras().getString("RESULT");
}
}
}
你可能还想通过数组发送项目的位置,以便你可以更新它
尝试使用BroadCastReceiver发送更新的内容返回到Activity-A
,并在设置相关内容后通知您的Listview
。