Java Android:listview中的数量按钮-仅更新顶部数量

Java Android:listview中的数量按钮-仅更新顶部数量,java,android,listview,android-studio,Java,Android,Listview,Android Studio,我已经创建了一个列表视图,每行上都有加号和减号按钮,但是值只在最上面一行更改。我还需要一种方法,以便在单击“提交订单”时,它将引用咖啡的类型,并说明订购的数量 activity_main.xml <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:lay

我已经创建了一个列表视图,每行上都有加号和减号按钮,但是值只在最上面一行更改。我还需要一种方法,以便在单击“提交订单”时,它将引用咖啡的类型,并说明订购的数量

activity_main.xml

<ListView
        android:id="@+id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"></ListView>
</LinearLayout>

customListAdapter.java

public class CustomListAdapter extends ArrayAdapter<String> {
String[] description = {
        "Price: £1.75",
        "Price: £2.15",
        "Price: £2.80",
        "Price: £2.00",
        "Price: £2.80",
        "Price: £3.35",
        "Price: £3.15",
        "Price: £2.00",
        "Price: £2.45",
        "Price: £3.00",
        "Price: £2.25",
};

private final Activity context;
private final String[] itemname;
private final Integer[] imgid;

public CustomListAdapter(Activity context, String[] itemname, Integer[] imgid) {
    super(context, R.layout.mylist, itemname);
    // TODO Auto-generated constructor stub

    this.context=context;
    this.itemname=itemname;
    this.imgid=imgid;
}



public View getView(int position,View view,ViewGroup parent) {
    LayoutInflater inflater=context.getLayoutInflater();
    View rowView=inflater.inflate(R.layout.mylist, null,true);

    TextView txtTitle = (TextView) rowView.findViewById(R.id.item);
    ImageView imageView = (ImageView) rowView.findViewById(R.id.icon);
    TextView extratxt = (TextView) rowView.findViewById(R.id.textView1);

    txtTitle.setText(itemname[position]);
    imageView.setImageResource(imgid[position]);
    extratxt.setText(description[position]);
    return rowView;

};
公共类CustomListAdapter扩展了ArrayAdapter{
字符串[]说明={
“价格:1.75英镑”,
“价格:2.15英镑”,
“价格:2.80英镑”,
“价格:2英镑”,
“价格:2.80英镑”,
“价格:3.35英镑”,
“价格:3.15英镑”,
“价格:2英镑”,
“价格:2.45英镑”,
“价格:3英镑”,
“价格:2.25英镑”,
};
私人最终活动背景;
私有最终字符串[]itemname;
私有最终整数[]imgid;
公共CustomListAdapter(活动上下文,字符串[]项名称,整数[]imgid){
super(context,R.layout.mylist,itemname);
//TODO自动生成的构造函数存根
this.context=context;
this.itemname=itemname;
this.imgid=imgid;
}
公共视图getView(内部位置、视图视图、视图组父视图){
LayoutInflater充气器=上下文。getLayoutInflater();
视图行视图=充气机。充气(R.layout.mylist,null,true);
TextView txtTitle=(TextView)rowView.findViewById(R.id.item);
ImageView ImageView=(ImageView)rowView.findViewById(R.id.icon);
TextView extratxt=(TextView)rowView.findViewById(R.id.textView1);
setText(项目名称[位置]);
setImageResource(imgid[position]);
extratxt.SETEXT(说明[位置]);
返回行视图;
};
myList.xml

    <LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/item"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="5dp"
        android:padding="2dp"
        android:text="Top text"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="@android:color/white" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:textColor="#906B41"
        android:text="Bottom Text" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:paddingRight="8dp"
    android:paddingTop="8dp"
    android:orientation="horizontal">
    <View
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1">
    </View>
    <Button
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:onClick="decrement"
        android:textAlignment="center"
        android:background="@layout/roundshapebtn"
        android:text="-" />

    <TextView
        android:id="@+id/quantity_text_view"
        android:layout_width="wrap_content"
        android:layout_height="30dp"
        android:paddingLeft="8dp"
        android:paddingRight="8dp"
        android:text="0"
        android:textColor="@android:color/white"
        android:textAlignment="center"
        android:textSize="18sp" />

    <Button
        android:id="@+id/increment_button_view"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:onClick="increment"
        android:textAlignment="center"
        android:text="+"
        android:background="@layout/roundshapebtn"/>
</LinearLayout>


我不知道您的点击式侦听器代码如何,但我提供了一些示例-

 @Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if (view == null) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        view = inflater.inflate(R.layout.my_custom_list_layout, null);
    } 

    //Handle TextView and display string from your list
    TextView listItemText = (TextView)view.findViewById(R.id.list_item_string); 
    listItemText.setText(list.get(position)); 

    //Handle buttons and add onClickListeners
    Button deleteBtn = (Button)view.findViewById(R.id.delete_btn);
    Button addBtn = (Button)view.findViewById(R.id.add_btn);
deleteBtn.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v) { 
        //do something
        list.remove(position); //or some other task
        notifyDataSetChanged();
    }
});
addBtn.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v) { 
        //do something
        notifyDataSetChanged();
    }
});

return view; 
} 
}

我不知道你的点击监听器代码是怎样的,但我提供了一些例子-

 @Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if (view == null) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        view = inflater.inflate(R.layout.my_custom_list_layout, null);
    } 

    //Handle TextView and display string from your list
    TextView listItemText = (TextView)view.findViewById(R.id.list_item_string); 
    listItemText.setText(list.get(position)); 

    //Handle buttons and add onClickListeners
    Button deleteBtn = (Button)view.findViewById(R.id.delete_btn);
    Button addBtn = (Button)view.findViewById(R.id.add_btn);
deleteBtn.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v) { 
        //do something
        list.remove(position); //or some other task
        notifyDataSetChanged();
    }
});
addBtn.setOnClickListener(new View.OnClickListener(){
    @Override
    public void onClick(View v) { 
        //do something
        notifyDataSetChanged();
    }
});

return view; 
} 
}

这是因为它可能会混淆
列表项单击
按钮单击
…检查一下你的onclick监听器在哪里这是因为它可能会混淆
列表项单击
按钮单击
…检查一下你的onclick监听器在哪里