所以,我有两个活动。在第一个中,我有一个列表,其中我放置了一些数据和一个按钮以进入第二个活动。在第二个中,我有两个EditTexts和一个按钮(保存按钮)。当我在EditTexts中引入一些数据时,我将数据保存在第一个活动(列表)中。当我选择列表中的项目时,我可以转到第二个活动并修改项目的内容。所以,我用引入的数据显示列表,但是我不知道在再次编辑EditTexts后如何保存新数据。我使用onItemClick来选择列表中的项目。我知道我必须将位置和数据传递给第二个活动,我必须在第二个活动中检索,然后我必须再次发送到第一个活动,新数据更改为项目位置。请做这个想法吗?
谢谢!
答案 0 :(得分:1)
尝试getting the result from an activity。
总结文章:
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”);
然后将其放入“编辑”文本或任何您想要使用的内容中,完成后将其设置为结果包。
// 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");
}
}
}
您可能还希望通过数组中的项目位置发送,以便您可以更新它。
答案 1 :(得分:0)
尝试使用BroadCastReceiver发送更新的内容返回Activity-A
并在设置相关内容后通知您Listview
。