从listView中的选定项获取元素

时间:2016-12-04 11:12:15

标签: android listview android-studio

Stackoverflow确实帮助我达到了这个水平。谢谢大家。

基本上,我想从ListView中的选定项目中获取一个元素(子部分而不是整个数据)。我在这里读到可以使用游标完成,但没有成功。这是关联的代码段:

listView.setAdapter(adapter);
            listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view,
                                        int position, long id) {

                    Cursor member = (Cursor)parent.getItemAtPosition(position);

                    Toast.makeText(getApplicationContext(),
                            "Click ListItem Number "+member.getString(2), Toast.LENGTH_LONG)
                            .show();
                }
            }); 

parent.getItemAtPosition(position)给了我(Array,我想):

{name="xyz_name", uname="xyz_user", desig="xyz_desig"}正确。

我想,假设从这里获取uname,所以,使用Cursor来获取它,但上面的代码片段给出了错误,

java.lang.ClassCastException: java.util.HashMap cannot be cast to android.database.Cursor

添加详细信息:我正确获取与listView项关联的文本。我实际上想要检索的数据的子部分。例如,检索到的数据显然是一个包含名称和角色的数组。现在,我只想获取角色&#39;数组中的元素。因为,数据是作为一个数组检索的,我在网上搜索的是我可以使用游标来检索不同的元素。希望你现在拥有我。

我身边似乎是一个愚蠢的语法错误。如果您有任何其他选择,请告诉我们。

谢谢:)

1 个答案:

答案 0 :(得分:2)

采用简单的方法

ListView list = (ListView) findViewById(R.id.listview);
    list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
       @Override
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

          Object listItem = list.getItemAtPosition(position);

        Toast.makeText(getApplicationContext(),"Click ListItem Number"+listItem.getString(), Toast.LENGTH_LONG).show();
       } 
    });