我需要从listView点击的项目中获取项目名称。
列表由items.xml填充
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="menu_dx_items">
<item name="0">A</item>
<item name="7">B</item>
<item name="2">C</item>
</string-array>
</resources>
通过以这种方式单击项目,我成功地获得了字符串(“A”,“B”或“C”):
final ListView menuDx = (ListView) findViewById(R.id.menu_dx);
menuDx.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, final int pos,long id){
String item_text = (String) parent.getItemAtPosition(pos);
Toast.makeText(getApplicationContext(), item_text , Toast.LENGTH_SHORT).show();
}
});
现在我正在尝试获取所点击项目的“名称”参数,是否有任何建议?
答案 0 :(得分:0)
这是不可能的,因为名称只是可用于引用该对象的资源ID。 (见http://developer.android.com/guide/topics/resources/string-resource.html#StringArray)
一种解决方法可能是拥有一个单独的字符串数组,即#34;映射&#34;到这个数组,所以当你知道点击了什么索引时(比如&#34; A&#34;被点击),你可以检查&#34; map&#34;应该与a关联的值的数组。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="menu_dx_items">
<item>A</item>
<item>B</item>
<item>C</item>
</string-array>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="menu_dx_item_map">
<item>0</item>
<item>7</item>
<item>2</item>
</string-array>
</resources>
和
final ListView menuDx = (ListView) findViewById(R.id.menu_dx);
menuDx.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, final int pos,long id){
String item_text = (String) parent.getItemAtPosition(pos);
// Now, get the value from the map array
String item_val = getResources().getStringArray(R.array.menu_dx_item_map)[pos];
Toast.makeText(getApplicationContext(), item_text + " = " + item_val, Toast.LENGTH_SHORT).show();
}
});