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

Android 如何在listView中使用按钮,以便在单击该按钮时,可以获取所选项目并对其运行查询?,android,listview,android-listview,Android,Listview,Android Listview,我基本上有这个购物车应用程序,在我的listView中,它向我显示所有项目,如项目的描述、商店、品牌、价格和它的图像,在每个项目下,有一个添加到购物车按钮。因此,当我单击某个项目的此按钮时,我希望运行一个查询并将该项目添加到现有数据库中。我在ClickListener上使用一个按钮,但是如何首先在我的listView中获取我单击该按钮的特定项目,然后对该项目的信息(如描述、品牌、商店、价格等)运行查询。?我还没有发布我的代码,但我只需要知道如何做到这一点 <a href="addToCar

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

<a href="addToCart?cartId=<%=product.getCartId()%>"><button type="button">Add to Cart</button></a>
假设addToCart是您的方法。 像使用spring框架一样对方法进行注释 @RequestMappingvalue=addToCart,method=RequestMethod.GET 假设addToCart是您的方法。 像使用spring框架一样对方法进行注释 @RequestMappingvalue=addToCart,method=RequestMethod.GET
每次创建项目布局时,都可以使用行的索引作为按钮的标记

以下是一个例子:

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

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

以下是一个例子:

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

我实际上没有使用Spring框架,所以当我点击按钮时,基本上这就是我想要的。首先,它会给我一个祝酒词,我已经有了这个祝酒词,然后它应该调用一个名为addToCart的方法,该方法将执行一个查询,基本上将该项目添加到购物车中。但在我这么做之前,我需要在listView中获取特定的项目,那么我如何获取该项目及其信息,如品牌、商店、价格等?根据您的说法,您的列表视图中有一些项目,如品牌、商店、价格等,这些项目来自某个数据库表。在您的列表视图中,有一个按钮“添加到购物车”。您希望单击此按钮时,所有项都应点击方法并运行查询。如果正确的话,那么假设productId是品牌、商店、价格来源表的主键,那么productId和您的方法实际上并没有使用Spring框架,所以基本上这就是我单击按钮时想要的。首先,它会给我一个祝酒词,我已经有了这个祝酒词,然后它应该调用一个名为addToCart的方法,该方法将执行一个查询,基本上将该项目添加到购物车中。但在我这么做之前,我需要在listView中获取特定的项目,那么我如何获取该项目及其信息,如品牌、商店、价格等?根据您的说法,您的列表视图中有一些项目,如品牌、商店、价格等,这些项目来自某个数据库表。在您的列表视图中,有一个按钮“添加到购物车”。您希望单击此按钮时,所有项都应点击方法并运行查询。如果正确,那么假设productId是品牌、商店、价格来源表的主键