Ferenc Schenkovski
Ferenc Schenkovski

Reputation: 89

listview item button change text

How is it possible to change text in a textview from a listview item. I got a productAdapter and now i try to add a onclicklistener for the items. I got 2 buttons in my listview items when i click them the text should change. The onclicklistener works btw i outprintet the position of the clicked item that worked.

public class ProductAdapter extends ArrayAdapter<Product>{

    Context context;
    int layoutResourceId;   
    List<Product> data = null;

    public ProductAdapter(Context context, int layoutResourceId, List<Product> yal) {
        super(context, layoutResourceId, yal);
        this.layoutResourceId = layoutResourceId;
        this.context = context;
        this.data = yal;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View row = convertView;
        prodHolder holder = null;
        final int pos=position;
        if(row == null)
        {
            LayoutInflater inflater = ((Activity)context).getLayoutInflater();
            row = inflater.inflate(layoutResourceId, parent, false);

            holder = new prodHolder();
            holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
            holder.txtTitle = (TextView)row.findViewById(R.id.txtTitle);
            holder.txtPrice = (TextView)row.findViewById(R.id.txtPrice);
            holder.txtAmount = (TextView)row.findViewById(R.id.txtAmount);
            holder.minus = (Button)row.findViewById(R.id.minbtn);
            holder.plus = (Button)row.findViewById(R.id.plusbtn);

            row.setTag(holder);
        }
        else
        {
            holder = (prodHolder)row.getTag();
        }



        holder.minus.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                onMinButtonClicked(pos,prod,v);
            }


        });
        holder.plus.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                onPlusButtonClicked(pos,prod,v);
            }
        });        
        return row;
    }
    private void onMinButtonClicked(int position,Product prod,View row) {

        short am= prod.getAmount();
        if(am>0){
                am=(short) (am-1);      
        }
        prod.setAmount(am);

        SerializeIt si=new SerializeIt();
        si.storeMyData(prod,context);
    }
    private void onPlusButtonClicked(int position,Product prod,View row) {

        short tt=(short) (prod.getAmount()+1);
        prod.setAmount(tt);
        SerializeIt si=new SerializeIt();
        si.storeMyData(prod,context);

    }   
    static class prodHolder
    {
        ImageView imgIcon;
        TextView txtTitle;
        TextView txtPrice;
        TextView txtAmount;
        Button minus;
        Button plus;
    }
}

Hopefully some can help me :)

Upvotes: 0

Views: 1643

Answers (1)

Hardik Joshi
Hardik Joshi

Reputation: 9507

Try with following code..

holder.minus.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                 holder.txtAmount.settext("MINUS");
            }


        });
        holder.plus.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                 holder.txtAmount.settext("PLUSH");
            }
        });     

Upvotes: 1

Related Questions