【问题标题】:How can I use a button within a listView such that when I click that button, I can get that selected item and run a query on it?如何使用 listView 中的按钮,以便当我单击该按钮时,我可以获取该选定项目并对其运行查询?
【发布时间】:2015-04-19 16:59:16
【问题描述】:

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

【问题讨论】:

    标签: android listview android-listview


    【解决方案1】:

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

    这是一个例子:

    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();
            [...]
        }
    }
    

    【讨论】:

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

      【讨论】:

      • 我实际上并没有使用Spring框架,所以基本上这就是我点击按钮时想要的。首先,它会给我一个我已经拥有的 toast,然后它应该调用一个名为 addToCart() 的方法,该方法本质上将执行一个查询以将该项目添加到购物车中。但在此之前,我需要在 listView 中获取该特定商品,那么如何获取该商品及其品牌、商店、价格等信息?
      • 根据您的说法,您的列表视图中有一些项目,如品牌、商店、价格等,这些项目来自某个数据库表。在您的列表视图中,有“添加到购物车”按钮.您希望在单击此按钮时所有项目都应点击方法并运行查询。如果是的话
      • 假设“productId”是来自哪个品牌、商店、价格的表的主键。然后 productId 与您的方法一样
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      • 2014-07-13
      • 1970-01-01
      • 2014-08-12
      • 2021-11-28
      相关资源
      最近更新 更多