我想增加和減少textview內點擊按鈕在特定位置的值。我做了自定義列表視圖。問題是,當我點擊+第一個按鈕項目,數量增加1,獎品增加20,但當我點擊第二項時,數量直接從0增加到2,獎品直接增加到40.我想要書必須增加20,筆必須增加30和鉛筆5和同樣是decrement.As我在安卓plz幫助me.Thanks在advance.Following你的幫助,新的是我的代碼: -增加和減少textview內的值按鈕點擊特定位置
order.xml
<?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="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/item_name"
android:orientation="horizontal"
android:layout_toRightOf="@+id/sr_no"
>
<TextView
android:layout_width="150dp"
android:layout_height="50dp"
android:layout_toRightOf="@+id/srno"
android:layout_below="@+id/breakfast"
android:text="ITEM NAME"
android:id="@+id/itemname"
android:gravity="center"
android:textStyle="bold"
android:textColor="#000"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/qtity"
android:orientation="horizontal"
android:layout_toRightOf="@+id/item_name"
>
<TextView
android:layout_width="40dp"
android:layout_height="50dp"
android:layout_toRightOf="@+id/itemname"
android:layout_below="@+id/lunch"
android:text="QTY"
android:id="@+id/quantity"
android:gravity="center"
android:textStyle="bold"
android:textColor="#000"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/count"
android:layout_toRightOf="@+id/qtity"
>
<TextView
android:layout_width="50dp"
android:layout_height="50dp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/rate"
android:orientation="horizontal"
android:layout_toRightOf="@+id/count"
>
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_toRightOf="@+id/quantity"
android:layout_below="@+id/snacks"
android:text="PRICE"
android:id="@+id/price"
android:gravity="center"
android:textStyle="bold"
android:textColor="#000"
/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/sr_no"
android:orientation="horizontal"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_below="@+id/breakfast"
android:layout_margin="2dp"
android:layout_marginTop="10dp"
android:text="SR.NO"
android:gravity="center"
android:textStyle="bold"
android:textColor="#000"
android:id="@+id/srno"
/>
</LinearLayout>
<ListView
android:layout_width="match_parent"
android:layout_height="350dp"
android:id="@+id/listdetails"
android:scrollbars="vertical"
android:scrollbarStyle="insideOverlay"
android:layout_below="@+id/item_name"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true">
</ListView>
</RelativeLayout>
customlist.xml
<?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="match_parent">
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/s_no"
android:layout_marginTop="5dp"
android:gravity="center"
android:textColor="#000"
android:textStyle="bold"
/>
<TextView
android:layout_width="150dp"
android:layout_height="50dp"
android:gravity="center"
android:textColor="#000"
android:textStyle="bold"
android:id="@+id/i_name"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/s_no"
/>
<TextView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/qty"
android:layout_toRightOf="@id/i_name"
android:gravity="center"
android:textColor="#000"
android:textStyle="bold"
android:layout_marginTop="5dp"
/>
<Button
android:layout_width="25dp"
android:layout_height="25dp"
android:id="@+id/pl"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/qty"
android:background="@drawable/plus1"
/>
<Button
android:layout_width="25dp"
android:layout_height="25dp"
android:id="@+id/min"
android:layout_marginTop="3dp"
android:layout_below="@id/pl"
android:layout_toRightOf="@id/qty"
android:background="@drawable/minus1"
/>
<TextView
android:layout_width="60dp"
android:layout_height="50dp"
android:id="@+id/pr"
android:gravity="center"
android:textColor="#000"
android:textStyle="bold"
android:layout_marginLeft="10dp"
android:layout_alignBottom="@+id/min"
android:layout_toRightOf="@+id/pl"
android:layout_toEndOf="@+id/pl" />
</RelativeLayout>
Order.java
public class Order extends Activity {
ListView list_item;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.order);
list_item=(ListView)findViewById(R.id.listdetails);
int sr[]={1,2,3};
// int sr=1;
// String[] item_name={"book","pen","notebook","pendrive","rubber","scale","pencil","slate","crayons","compass box"};
String [] itemname={"book","pen","pencil"};
int [] quantity={0,0,0};
//int[] price={20,20,25,25,30,30,20,10,25,10};
int [] price={20,30,5};
Custom_Adapter ca=new Custom_Adapter(this,sr,itemname,price,quantity);
list_item.setAdapter(ca);
}
}
CustomAdapter.java
public class Custom_Adapter extends BaseAdapter {
Activity a;
int sr [];
int quantity[];
String itemname[];
int price[];
TextView qt;
public static int count=0,count2=0,cal;
private String data,pricedata;
public Custom_Adapter(Activity a, int[] sr, String[] itemname, int[] price, int quantity[]) {
this.a = a;
this.sr = sr;
this.itemname = itemname;
this.price = price;
this.quantity = quantity;
}
@Override
public int getCount() {
return itemname.length;
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
public class viewHolder{
TextView srh,item,qt,rate;
Button plus,minus;
}
@NonNull
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final viewHolder viewHolder=new viewHolder();
LayoutInflater li=a.getLayoutInflater();
View view=li.inflate(R.layout.customlist,parent,false);
viewHolder.srh=(TextView)view.findViewById(R.id.s_no);
viewHolder.item=(TextView)view.findViewById(R.id.i_name);
viewHolder.qt=(TextView)view.findViewById(R.id.qty);
viewHolder.plus=(Button)view.findViewById(R.id.pl);
viewHolder.minus=(Button)view.findViewById(R.id.min);
viewHolder.rate=(TextView)view.findViewById(R.id.pr);
viewHolder.srh.setText(Integer.toString(sr[position]));
viewHolder.item.setText(itemname[position]);
viewHolder.qt.setText(Integer.toString(quantity[position]));
viewHolder.rate.setText(Integer.toString(price[position]));
viewHolder.plus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
count+=1;
count2+=20;
viewHolder.qt.setText(String.valueOf(count));
viewHolder.rate.setText(String.valueOf(count2));
}
});
viewHolder.minus.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (count>0 && count2>0) {
count = count - 1;
count2-=20;
viewHolder.qt.setText(String.valueOf(count));
viewHolder.rate.setText(String.valueOf(count2));
}
}
});
return view;
}
}
我不知道如果我正確理解你,你分享的代碼越多越清晰就是你的問題。 應該顯示什麼數據?你的列表應該包含單個viewType或不同的類型?你如何更新數據? – Lukas
上面的代碼,我已發佈完整..我想增加或減少在特定項目的數量和數量 –