0

我的 strings.xml 文件中有一个数组,如下所示。

<string-array name="array123">
<item>test1</item>
<item>test2</item>
<item>test3</item>
<item>test4</item>
<item>test5</item>
</string-array>

我的列表视图正确显示在活动 1 上,这是我的 onItemClick 代码

public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
Intent activityIntent = new Intent(this, Activity2.class);
String selectedItem = adapter.getSelectedItem().toString();
activityIntent.putExtra("my.package.dataToPass", selectedItem);
startActivity(activityIntent);

一旦我从列表中点击一个项目,屏幕就会变黑并且应用程序崩溃。这是我的活动 2 代码

Bundle recdData = getIntent().getExtras();
String myVal = recdData.getString("my.package.dataToPass");
TextView word = (TextView) findViewById(R.id.word);
word.setText(myVal);

我不确定为什么这不起作用。我只是想传递选择在第二个活动中显示为文本的字符串。我已经找了一天半了。我确实尝试过

activityIntent.putExtra("my.package.dataToPass", id);

但这似乎只是通过了一个空屏幕。任何帮助将非常感激。显然,我没有在意图中传递正确的数据。

4

1 回答 1

0

如我所见,您正在实现 Click listener ( onItemClick) 而不是 Select listener( onItemSelected)。默认情况下,当您单击一个ListView项目时,它不会将其状态更改为“已选择”

请使用adapter.getItem(position)代替adapter.getSelectedItem()

public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
    String selectedItem  = adapter.getItem(position).toString();
}
于 2013-08-21T20:54:24.963 回答