我的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);
但这似乎只是通过一个空屏幕。 任何帮助将非常感激。显然我没有在意图中传递正确的数据。
答案 0 :(得分:0)
正如我所看到的,您正在实现Click侦听器(onItemClick
)而不是Select侦听器(onItemSelected
)。默认情况下,当您单击ListView
项时,它不会将其状态更改为“已选择”
使用adapter.getItem(position)
代替adapter.getSelectedItem()
public void onItemClick(AdapterView<?> adapter, View v, int position, long id) {
String selectedItem = adapter.getItem(position).toString();
}