Android studio-ListView购物车数量按钮

Android studio-ListView购物车数量按钮,android,Android,我的订购应用程序的最后一步是在列表视图中显示我的项目,每个项目都有自己的增加和减少按钮。当我点击其中一个按钮时,什么也没发生 ListViewAdapter { private Context context; private int images[]; private int services[]; private LayoutInflater inflter; private Button btnIncrease, btnDecrease;

我的订购应用程序的最后一步是在列表视图中显示我的项目,每个项目都有自己的增加和减少按钮。当我点击其中一个按钮时,什么也没发生

ListViewAdapter

{

    private Context context;
    private int images[];
    private int services[];
    private LayoutInflater inflter;
    private Button btnIncrease, btnDecrease;
    private TextView tvQuantity,service;
    private ImageView icon;


    public ListViewAdapter(Context context, int[] images, int[] services) {
        this.context = context;
        this.images = images;
        this.services = services;
        this.inflter = (LayoutInflater.from(context));

    }

    @Override
    public int getCount() {
        return images.length;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View view, ViewGroup parent) {
        view = inflter.inflate(R.layout.list_view_layout, null);
        btnIncrease = view.findViewById(R.id.btnIncrease);
        btnDecrease = view.findViewById(R.id.btnDecrease);
        tvQuantity = view.findViewById(R.id.tvQuantity);
        service = view.findViewById(R.id.tvServeice);
        icon = view.findViewById(R.id.serviceImage);
        service.setText(services[position]);
        icon.setImageResource(images[position]);

        btnIncrease.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int q = Integer.parseInt(tvQuantity.getText().toString());
                q += 1;
                tvQuantity.setText(q + "");
                notifyDataSetChanged();
            }
        });

        btnDecrease.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int q = Integer.parseInt(tvQuantity.getText().toString());
                if (q > 0) {
                    q -= 1;
                    tvQuantity.setText(q + "");
                    notifyDataSetChanged();
                }

            }
        });



        return view;
    }




    public Context getContext() {
        return context;
    }

    public void setContext(Context context) {
        this.context = context;
    }

    public int[] getImages() {
        return images;
    }

    public void setImages(int[] images) {
        this.images = images;
    }

    public int[] getServices() {
        return services;
    }

    public void setServices(int[] services) {
        this.services = services;
    }

    public LayoutInflater getInflter() {
        return inflter;
    }

    public void setInflter(LayoutInflater inflter) {
        this.inflter = inflter;
    }

    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        notifyDataSetChanged();
    }
}
ListView.xml

<LinearLayout
    android:layout_gravity="right"
    android:id="@+id/des_lay"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/tvDescription"
    android:layout_alignParentEnd="true"
    android:orientation="horizontal">

    <Button
        android:id="@+id/btnDecrease"
        style="@style/QuantityPickerButtonStyle"
        android:text="-" />

    <TextView
        android:id="@+id/tvQuantity"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:text="@string/initial_quantity_value"
        android:textColor="@android:color/black"
        android:textSize="16sp" />

    <Button
        android:id="@+id/btnIncrease"
        style="@style/QuantityPickerButtonStyle"
        android:text="+" />

</LinearLayout>

除了文本视图中的数量不变外,其他一切都正常


谢谢

创建此类并将代码添加到此类:

ListAdapter.class

抓住你班上最上面的代码

现在在主类中添加代码

代码已经准备好了 现在通过视图支架给孩子们打电话 将命令放置为:

viewHolder.mButtonbtnDecrease.setOnClickListener(new View.OnClickListener() {
      //  @Override
      //  public void onClick(View v) {.....

如果调用工作正常,并且子项出现在应用程序中,那么您应该将onclick放在listview适配器中。如果您没有按预期工作,请创建一个特殊的筛选器,并通过Get和set请求它,设置筛选器应该包含什么以及它的滚动范围?谢谢你的帮助
public ListViewAdapter(Context context, int[] images, int[] services) {
    this.context = context;
    this.images = images;
    this.services = services;
    this.inflter = (LayoutInflater.from(context));

}

@Override
public int getCount() {
    return images.length;
}

@Override
public Object getItem(int position) {
    return null;
}

@Override
public long getItemId(int position) {
    return 0;
}
viewHolder.mButtonbtnDecrease.setOnClickListener(new View.OnClickListener() {
      //  @Override
      //  public void onClick(View v) {.....