安卓ListView的onItemClick事件

5
我有一个ListView,其中包含从解析的JSON获取的数据。以下是我的示例代码:
ArrayList<HashMap<String, String>> myList = new ArrayList<HashMap<String, String>>();

    /**
     * parsing JSON...
     * ...
     * ...
     * ...
     */

ListAdapter adapter = new SimpleAdapter(this, myList, R.layout.s_layout, new String[]{NAME, TEXT}, new int[]{R.id.name, R.id.text});
    setListAdapter(adapter);

lv.setOnItemClickListener(new OnItemClickListener(){

        public void onItemClick(AdapterView<?> parent, View view, int position, long id){


            String inName = ((TextView) view.findViewById(R.id.name)).getText().toString();
            String inText = ((TextView) view.findViewById(R.id.text)).getText().toString();


            Intent intent = new Intent(getApplicationContext(), StaffProfileActivity.class);

            intent.putExtra("staff_name", inName);
            intent.putExtra("staff_desc", inText);
            startActivity(intent);
       }
});

我的问题是如何在不使用“Intent”时将数据传递给它。
String inName = ((TextView) view.findViewById(R.id.name)).getText().toString(); 

我的意思是,如何从我的ListView中获取数据并将其传递给意图?
2个回答

6

adapter.get(position)将返回所选元素的HashMap<String, String>。 并且请使用List<T>定义,而不是ArrayList<T>


1
使用这个可以吗? Object ob = lv.getItemAtPosition(position); - elL

3
文档中得知:

public abstract void onItemClick(AdapterView parent, View view, int position, long id)

当 AdapterView 中的项被单击时,将调用回调方法。如果实现者需要访问与所选项目关联的数据,可以调用getItemAtPosition(position)。

因此,在onItemClick中,您可以检索您的元素:
  HashMap<String, String> elt = myList.getItemAtPosition(position);

然后从elt中获取inName和inText的值。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接