2013-03-12 129 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