gpt4 book ai didi

java - Android: ListView 中的数量按钮 - 仅更新顶部数量

转载 作者:太空宇宙 更新时间:2023-11-04 13:12:00 24 4
gpt4 key购买 nike

我创建了一个 ListView ,每行都有加号和减号按钮,但值仅在顶行发生变化,我还需要一种方法,以便当我单击“提交订单”时,它将引用咖啡的类型并说出订购的数量。

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;

};

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>

Image showing the quantity only changes on the top value

最佳答案

我不知道你的点击监听器代码如何,但我为此提供了一些示例-

 @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;
}
}

关于java - Android: ListView 中的数量按钮 - 仅更新顶部数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33868146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com