Android如何获得" name"来自点击的项目

时间:2014-06-18 15:27:18

标签: android

我需要从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();
                  }
            });

现在我正在尝试获取所点击项目的“名称”参数,是否有任何建议?

1 个答案:

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