Android:如何从列表视图中获取特定数据

时间:2016-07-11 00:46:23

标签: android

我创建了一个自定义列表视图,并在product_namecode上设置了文字。

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    LayoutInflater inflater = context.getLayoutInflater();
    View listViewItem = inflater.inflate(R.layout.product_list_item, null, true);
    TextView txtProduct = (TextView) listViewItem.findViewById(R.id.textProduct);
    TextView txtCode = (TextView) listViewItem.findViewById(R.id.textCode);

    txtProduct.setText(product_name[position]);
    txtCode.setText(code[position]);

    return listViewItem;
}

如何设置OnItemClickListener以从列表视图中获取每个数据并传递给另一个活动。

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {

    }
});

2 个答案:

答案 0 :(得分:0)

Data data=listView.getAdapter().getPosition(arg2);
Intent intent=new Intent(this,newActivity.class);
intent.putExtra("Key",data);
startActivity(intent);

答案 1 :(得分:0)

在你的CustomListViewAdapter上你应该有这样的东西:

private final List<Object> mList;

//public constructor, random name
public MyCustomListViewAdapter(Context c, List<Object> list) {
    context = c;
    this.mList = list;
}

@Override
public int getCount() {
    return mList.size();
}

@Override
public Object getItem(int position) {
    return mList.get(position);
}

@Override
public long getItemId(int position) {
    return mList.get(position).getId();
}

从列表中检索数据时,只需调用

即可
listView.getAdapter().getItem(position); 

并且if将在您发送的位置返回自定义对象。