我有两个列表视图活动。
在第一个列表视图活动中,我有链接打开第二个列表视图活动。在第二个列表视图中,我有5行。我想将第二个列表视图项的位置传递给第一个第一个活动,并根据第二行的位置设置文本。
我可以将第二个列表视图活动中的静态数据传递给第一个带有finish()的列表视图活动,但我不知道如何将其设置为选定的行,我不知道如何使用finish()传递第二个list-view的位置。
任何人都可以提供帮助,请编写代码。为此
我想为第一个list-view的第二行设置文本。也为此写。 感谢。
答案 0 :(得分:0)
您可以利用startActivityForResult()
启动第二项活动。通过调用而不是startActivity()
,当第二个活动完成时,您将注意到第一个活动。
在FirstActivity
中,使用此功能启动第二项活动:
Intent launch2ndActivity = new Intent(this, SecondActivity.class);
startActivityForResult(launch2ndActivity, 610);
然后在SecondActivity
:
// Do what do you need to do here.
//I assume you would need to get the position of your ListView upon item click.
..
yourListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent resultIntent = this.getIntent();
resultIntent.putExtra("clicked_row", position);
SecondActivity.this.setResult(RESULT_OK, resultIntent);
finish();
}
});
您需要做的最后一件事是指定FirstActivity
在收到SecondActivity
的结果时应如何做出反应:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case 610:
if (resultCode == RESULT_OK) {
Bundle res = data.getExtras();
int clickedRow = res.getInt("clicked_row");
// Do what you want with that value..
}
break;
}
}