繁体   English   中英

当在Android的ListView中单击按钮时,如何增加和减少文本视图的值?

[英]how to increase and decrease the value of text view when button is clicked inside the listview in android?

我有一个列表视图。 在列表视图中,我有一个文本视图,在文本视图旁边有两个按钮添加和减少。 所有这些都在列表视图中。 现在我想要的是单击添加按钮时,文本视图值需要增加,而单击减号按钮时,文本视图值必须减小。 我已经使用数组适配器类来设置数据。 请任何人帮助我。

public class MainActivity extends ActionBarActivity {

    listviewAdapter listviewAdapter;
    List<Constant> constantlist = new ArrayList<Constant>();

     ListView list;
     String[] item;
     String[] quantity; 
     String[] price;


     //private ArrayList<HashMap<String,String>> list;

    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        item = new String[] {"Pizza", "Burger", "Chicken", "Biriyani", "Chapathi" , "Dosa", "Veg Pizza", "Chicken Burger", "Chicken Pizza", "pizza"};   


        quantity = new String[] {"2", "1", "3", "2", "5", "2", "4", "3", "1", "2" };


        price = new String[] {"$70.32", "$34.09", "56.763", "546.0", "23.09", "90.34", "23.76", "76.098", "45.09", "87.09"};



        for(int i=0;i<item.length;i++){
            Constant constant = new Constant (item[i], quantity[i], price[i]);
            constantlist.add(constant);

        }




        list= (ListView)findViewById(R.id.listview);

        listviewAdapter = new listviewAdapter(this, R.layout.listview_row, constantlist);

        list.setAdapter(listviewAdapter); 


    }
}

和xml是:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    android:id="@+id/relativeLayout1" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <TextView
        android:id="@+id/txt_item"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="First"
        android:layout_weight="2"
        android:textColor="#ffffff"
        android:textSize="20sp">

    </TextView>


     <Button 
        android:id="@+id/btn_redqty"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:text="-"
        android:focusable="false"
        android:textColor="#ffffff"
        android:textSize="20sp"
        />  



    <TextView
        android:id="@+id/txt_quantity"
        android:layout_width="40dp"
        android:layout_height="wrap_content"
        android:text="Second"

        android:textColor="#ffffff"
        android:gravity="center"
        android:textSize="20sp"
        >
    </TextView>





     <Button 
        android:id="@+id/btn_addqty"
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:text="+"
        android:focusable="false"
        android:textColor="#ffffff"
        android:textSize="20sp"
       />   







    <TextView
        android:id="@+id/txt_price"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Third"
        android:gravity="right"
        android:layout_weight="1"
        android:textColor="#ffffff"
        android:textSize="20sp">
    </TextView>

   <!--  <TextView
        android:id="@+id/FourthText"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Fourth"
        android:layout_weight="1"
        android:textColor="#ffffff"
        android:gravity="center"
        android:textSize="15sp">
    </TextView> -->
</LinearLayout>

和适配器类是:

public class listviewAdapter extends ArrayAdapter<Constant>{


    Context context;
    LayoutInflater inflater;
    List<Constant> constantlist;


    public listviewAdapter(Context context, int resourceId,
            List<Constant> worldpopulationlist) {
        super(context, resourceId, worldpopulationlist);
        //mSelectedItemsIds = new SparseBooleanArray();
        this.context = context;
        this.constantlist = worldpopulationlist;
        inflater = LayoutInflater.from(context);
    }

    private class ViewHolder{
        TextView item;
        TextView quantity;
        TextView price;
    }


    public View getView(int position,  View view, ViewGroup parent){
        final ViewHolder holder;

        if(view == null){
            holder = new ViewHolder();
            view=inflater.inflate(R.layout.listview_row, null);

            holder.item = (TextView) view.findViewById(R.id.txt_item);
            holder.quantity = (TextView) view.findViewById(R.id.txt_quantity);
            holder.price = (TextView) view.findViewById(R.id.txt_price);

            view.setTag(holder);        
    }else{
        holder = (ViewHolder) view.getTag();
    }

        holder.item.setText(constantlist.get(position).getItem());
        holder.quantity.setText(constantlist.get(position).getQuantity());
        holder.price.setText(constantlist.get(position)
                .getPrice());

        return view;

    }

    public List<Constant> getWorldPopulation() {
        return constantlist;
    }

}

在布局文件中。为按钮添加onclick方法。

<Button 
    android:id="@+id/btn_addqty"
    android:layout_width="40dp"
    android:layout_height="40dp"
    android:text="+"
    android:focusable="false"
    android:textColor="#ffffff"
    android:textSize="20sp"
    android:onClick = "addQuantity"
/>   

在你的活动中。 添加方法addQuantity

public void addQuantity(View v) {
     // v is the LinearLayout of your row . Get the textview and add the text              
}

在此处此处阅读以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM