如何将listview项的位置传递给另一个listview适配器,并根据位置设置textview文本

时间:2015-05-18 06:34:02

标签: android listview baseadapter

我有两个列表视图活动。

在第一个列表视图活动中,我有链接打开第二个列表视图活动。在第二个列表视图中,我有5行。我想将第二个列表视图项的位置传递给第一个第一个活动,并根据第二行的位置设置文本。

我可以将第二个列表视图活动中的静态数据传递给第一个带有finish()的列表视图活动,但我不知道如何将其设置为选定的行,我不知道如何使用finish()传递第二个list-view的位置。

任何人都可以提供帮助,请编写代码。为此

我想为第一个list-view的第二行设置文本。也为此写。 感谢。

1 个答案:

答案 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;
    }
}