2013-03-12 64 views
0

如何从列表视图项目更改文本视图中的文本。 我有一个productAdapter,现在我尝试添加一个onclicklistener的项目。 当我点击它们时,文本应该改变,我在我的列表视图项目中有2个按钮。 onclicklistener作品btw我outprintet单击项目的工作位置。listview项目按钮更改文本

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

希望一些能帮助我:)

+0

当你写holder.txtAmount.settext( “减”)是什么发生;和holder.txtAmount.settext(“PLUSH”);在onclick? – 2013-03-12 10:16:28

+0

感谢这个工程;) – 2013-03-12 10:33:44

回答

1

与下面的代码尝试..

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"); 
      } 
     });  
+0

是的谢谢,解决了这个问题 – 2013-03-12 10:37:32

+0

欢迎您,并高兴地帮助:) – 2013-03-12 10:38:01