如何在listView中使用按钮,以便当我单击该按钮时,我可以获取所选项并对其运行查询?

时间:2015-04-19 16:59:16

标签: android listview android-listview

我基本上有这个购物车应用程序,在我的listView它显示了所有项目,如项目的描述,商店,品牌,价格和它的图像,在每个项目下,有一个添加到购物车按钮。因此,当我单击此按钮以查找项目时,我想运行查询并将该项目添加到现有数据库中。我正在使用按钮onClickListener,但我如何首先获取listView中我点击该按钮的特定项目,然后对该项目的信息运行查询,例如说明,品牌,商店,价格等?我没有发布我的代码,但我只需要知道如何执行此操作。

2 个答案:

答案 0 :(得分:0)

每次创建项目布局时,您都可以使用行的索引作为按钮的标记。

以下是一个例子:

private class MyListAdapter extends ArrayAdapter<MYItem> implements View.OnClickListener {

    public MyListAdapter () { [...] }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View view = convertView;
        if (view == null) {
            LayoutInflater vi = LayoutInflater.from(getContext());
            view = vi.inflate(R.layout.my_item_layout, parent, false);
        }

        MYItem item = getItem(position);

        [...]

        View btn = view.findViewById(R.id.list_item_btn);
        btn.setTag(position);

        return view;
    }

    // now you can get row index in this way:

    @Override
    public void onClick(final View v) {
        Integer index = (Integer ) v.getTag();
        [...]
    }
}

答案 1 :(得分:-1)

<a href="addToCart?cartId=<%=product.getCartId()%>"><button type="button">Add to Cart</button></a>
  1. 假设addToCart()是您的方法。
  2. 将您的方法注释为(如果您使用的是spring框架) @RequestMapping(value="addToCart",method=RequestMethod.GET)