Android 如何在ListView中使用点击项更新数量

Android 如何在ListView中使用点击项更新数量,android,android-listview,Android,Android Listview,我正在编写一个应用程序,其中我需要通过在列表视图中点击某个项目来更新该项目的数量,我已经尝试了几次,但仍然无法解决此问题,请帮助我:: CartAdapter.java:: public View getView(final int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View vi = convertView; if (convertVie

我正在编写一个应用程序,其中我需要通过在列表视图中点击某个项目来更新该项目的数量,我已经尝试了几次,但仍然无法解决此问题,请帮助我::

CartAdapter.java::

 public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.listrow_cart, null);
        vi.setClickable(true);
        vi.setFocusable(true);
        vi.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //here i want to put code to update product quantity
        }
    });
  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:background="@drawable/btn_background"
android:gravity="center"
android:orientation="horizontal"
android:padding="5dip" >

<TextView
    android:id="@+id/total"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/qty"
    android:layout_alignBottom="@+id/qty"
    android:layout_alignLeft="@+id/TextView02"
    android:text="46.50"
    android:textColor="#343438"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/qty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/cost"
    android:layout_alignBottom="@+id/cost"
    android:layout_alignLeft="@+id/TextView01"
    android:layout_marginLeft="22dp"
    android:text="3"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343438" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/title"
    android:layout_marginLeft="30dp"
    android:text="Cost"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/cost"
    android:layout_centerHorizontal="true"
    android:text="Quantity"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="Item Name 1"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#a60704" />

<TextView
    android:id="@+id/TextView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/title"
    android:layout_marginRight="30dp"
    android:text="Total"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/cost"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:text="15.50"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343438" />

<ImageButton
    android:id="@+id/mImgBtnDelete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/TextView01"
    android:layout_below="@+id/qty"
    android:focusable="false"
    android:background="@drawable/remove_btn" />

  </RelativeLayout>
   public class Constants {
public static ArrayList<HashMap<String, String>> mItem_Detail = new ArrayList<HashMap<String, String>>();
    }
要删除项目,我使用以下代码:

   mImgBtnDelete = (ImageButton) vi
            .findViewById(R.id.mImgBtnDelete);
    mImgBtnDelete.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            Constants.mItem_Detail.remove(position);
            notifyDataSetChanged();
            Intent mInViewCartRefresh = new Intent(activity,
                    CartActivity.class);
            activity.startActivity(mInViewCartRefresh);
            activity.finish();

        }
    });

   HashMap<String, String> item = new HashMap<String, String>();
    item = Constants.mItem_Detail.get(position);
mImgBtnDelete=(图像按钮)vi
.findViewById(R.id.mImgBtnDelete);
mImgBtnDelete.setOnClickListener(新的OnClickListener(){
公共void onClick(视图v){
//TODO自动生成的方法存根
常量。斜接详图。删除(位置);
notifyDataSetChanged();
意向mInViewCartRefresh=新意向(活动,
活动类);
activity.startActivity(mInViewCartRefresh);
activity.finish();
}
});
HashMap项=新建HashMap();
item=常量。mItem_Detail.get(位置);
listrow\u activity.xml:

 public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.listrow_cart, null);
        vi.setClickable(true);
        vi.setFocusable(true);
        vi.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //here i want to put code to update product quantity
        }
    });
  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:background="@drawable/btn_background"
android:gravity="center"
android:orientation="horizontal"
android:padding="5dip" >

<TextView
    android:id="@+id/total"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/qty"
    android:layout_alignBottom="@+id/qty"
    android:layout_alignLeft="@+id/TextView02"
    android:text="46.50"
    android:textColor="#343438"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/qty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/cost"
    android:layout_alignBottom="@+id/cost"
    android:layout_alignLeft="@+id/TextView01"
    android:layout_marginLeft="22dp"
    android:text="3"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343438" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/title"
    android:layout_marginLeft="30dp"
    android:text="Cost"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/cost"
    android:layout_centerHorizontal="true"
    android:text="Quantity"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="Item Name 1"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#a60704" />

<TextView
    android:id="@+id/TextView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/title"
    android:layout_marginRight="30dp"
    android:text="Total"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/cost"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:text="15.50"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343438" />

<ImageButton
    android:id="@+id/mImgBtnDelete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/TextView01"
    android:layout_below="@+id/qty"
    android:focusable="false"
    android:background="@drawable/remove_btn" />

  </RelativeLayout>
   public class Constants {
public static ArrayList<HashMap<String, String>> mItem_Detail = new ArrayList<HashMap<String, String>>();
    }

注意:我允许用户在Items.java中输入他们愿意的数量

Constants.java::

 public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.listrow_cart, null);
        vi.setClickable(true);
        vi.setFocusable(true);
        vi.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //here i want to put code to update product quantity
        }
    });
  <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="5dp"
android:background="@drawable/btn_background"
android:gravity="center"
android:orientation="horizontal"
android:padding="5dip" >

<TextView
    android:id="@+id/total"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/qty"
    android:layout_alignBottom="@+id/qty"
    android:layout_alignLeft="@+id/TextView02"
    android:text="46.50"
    android:textColor="#343438"
    android:textAppearance="?android:attr/textAppearanceSmall" />

<TextView
    android:id="@+id/qty"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/cost"
    android:layout_alignBottom="@+id/cost"
    android:layout_alignLeft="@+id/TextView01"
    android:layout_marginLeft="22dp"
    android:text="3"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343438" />

<TextView
    android:id="@+id/textView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/title"
    android:layout_marginLeft="30dp"
    android:text="Cost"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/TextView01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_above="@+id/cost"
    android:layout_centerHorizontal="true"
    android:text="Quantity"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:text="Item Name 1"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textColor="#a60704" />

<TextView
    android:id="@+id/TextView02"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/title"
    android:layout_marginRight="30dp"
    android:text="Total"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343434"
    android:textStyle="bold" />

<TextView
    android:id="@+id/cost"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/textView1"
    android:layout_below="@+id/textView1"
    android:text="15.50"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:textColor="#343438" />

<ImageButton
    android:id="@+id/mImgBtnDelete"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignLeft="@+id/TextView01"
    android:layout_below="@+id/qty"
    android:focusable="false"
    android:background="@drawable/remove_btn" />

  </RelativeLayout>
   public class Constants {
public static ArrayList<HashMap<String, String>> mItem_Detail = new ArrayList<HashMap<String, String>>();
    }
公共类常量{
public static ArrayList mItem_Detail=new ArrayList();
}

intent.putExtra(“测试”,细节)方法第一个参数是值的名称,后跟对象。

intent.putExtra(“test”,mItem\u Detail)方法第一个参数是值的名称,后跟对象。

更改方法如下:

public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.listrow_cart, null);
        vi.setClickable(true);
        vi.setFocusable(true);
        vi.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            HashMap<String, String> item= mItem_Detail.get(position);
            item.put(KEY_TO_BE_CHANGED, newValue);
            mItem_Detail.set(position, item);
            notifyDataSetInvalidated();

        }
    });
public View getView(最终int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
视图vi=转换视图;
if(convertView==null)
vi=充气机。充气(R.layout.listrow\u cart,空);
vi.可设置可点击(真);
vi.setFocusable(真);
vi.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
HashMap item=mItem_Detail.get(位置);
项。放置(要更改的键,新值);
斜接详图组(位置、项目);
notifyDataSetionValidated();
}
});

按以下方式更改您的方法:

public View getView(final int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View vi = convertView;
    if (convertView == null)
        vi = inflater.inflate(R.layout.listrow_cart, null);
        vi.setClickable(true);
        vi.setFocusable(true);
        vi.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            HashMap<String, String> item= mItem_Detail.get(position);
            item.put(KEY_TO_BE_CHANGED, newValue);
            mItem_Detail.set(position, item);
            notifyDataSetInvalidated();

        }
    });
public View getView(最终int位置、视图转换视图、视图组父视图){
//TODO自动生成的方法存根
视图vi=转换视图;
if(convertView==null)
vi=充气机。充气(R.layout.listrow\u cart,空);
vi.可设置可点击(真);
vi.setFocusable(真);
vi.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
HashMap item=mItem_Detail.get(位置);
项。放置(要更改的键,新值);
斜接详图组(位置、项目);
notifyDataSetionValidated();
}
});