2015-04-26 57 views
-2

我有一個帶有textview和按鈕的自定義小部件。我的列表視圖包含自定義小部件的列表。我想知道點擊了哪個按鈕。 和Facebook一樣,每個帖子都有一個反應按鈕,當你點擊它時,你會轉到特定頁面。如何在列表視圖中獲取按鈕的ID

+1

[試試這個(http://26.media.tumblr.com/tumblr_layxkurNJE1qzpwi0o1_500.jpg) –

+1

如果您創建自定義適配器,那麼你可以到那裏只是按鈕的ID。 – Hanuman

+0

@Allu thnx,的確我必須使用一個自定義的適配器,該適配器從BaseAdapter的 – Claudiu

回答

1

使用下面的代碼來創建自定義列表。你可以創建一個持有者類來保存你的按鈕和textview對象。這將有助於您檢測使用持有人類別的按鈕點擊。

class MyAdpter extends ArrayAdapter 
     { 

      int layout; 
      ArrayList<Data> arr; 
      Context con; 

      public MyAdpter(Context context, int textViewResourceId, ArrayList<Data> objects) { 
       super(context, textViewResourceId, objects); 

       layout=textViewResourceId; 
       arr= objects; 
       con=context; 
       // TODO Auto-generated constructor stub 
      } 
      @Override 
      public View getView(int position, View convertView, ViewGroup parent) { 
       // TODO Auto-generated method stub 
       final ViewHolder holder=new ViewHolder(); 
       if(convertView==null) 
       { 
        LayoutInflater inflator=(LayoutInflater) con.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        convertView=inflator.inflate(layout, parent, false); 
        holder.tv=(TextView) convertView.findViewById(R.id.text); 
        holder.btn=(Button) convertView.findViewById(R.id.button); 

       } 



       holder.btn.setText("Data"); 
       holder.btn.setOnClickListener(new OnClickListener() { 

        @Override 
        public void onClick(View arg0) { 
         // TODO Auto-generated method stub 
         Toast.makeText(con, ""+holder.btn.getText(), 800).show(); 

        } 
       }); 

       holder.tv.setText("DATA"); 


       return convertView; 
      } 

      @Override 
      public int getCount() { 
       // TODO Auto-generated method stub 
       return super.getCount(); 
      } 

     } 
     static class ViewHolder 
     { 
      TextView tv; 
      Button btn; 
     } 
+0

Thanx擴展而來,我使用了一個擴展BaseAdapter的類,它的工作原理! – Claudiu