2012-08-01 106 views
0

我的ListView有10行,每行有TextViewButton。每次我點擊一個Button我想遍歷我行中的每個Button以檢查它的drawable。 挑戰在於,除了我單擊的視圖外,它將返回全部空值。 任何人都有一個想法,我怎麼能做到這一點?檢查下面的代碼片段。遍歷自定義佈局中的所有視圖ListView

public View getView(int position, View view, ViewGroup parent) { 
    convertView = inflater.inflate(R.layout.customlayout, null); 

    TextView textview = (TextView) view.findViewById(R.id.textview); 
    Button button = (Button) view.findViewById(R.id.button); 

    ListView listParent = (ListView) parent; 

    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 

      for(int ctr=0; ctr<listParent.getCount(); ctr++) { 
       //traverse to all the buttons in list here 
      } 

     } 
    }); 

    return view; 
} 

回答

0

是的,你只需將onclick監聽器設置爲一個id = button的按鈕即可。所以即使您調用所有具有相同名稱的按鈕,也只能爲一個按鈕工作。我建議將每一個按鈕都標識爲button1 button2 button3 ... button10,您可以使用for(){}並設置每個按鈕的onclick監聽器。

+0

這是我的自定義ListView適配器的代碼片段。當我設置listview.setAdapter(myAdapter);它會自動爲我的所有按鈕創建一個監聽器。我想要的是,如果我點擊button1,我想檢查button0,button2,button3等檢查他們的drawables。 – 2012-08-01 08:45:04

+0

你試過這個來得到按鈕嗎? Button wantedbutton = listView.getChildAt(ctr);當你說要檢查它的drawable時,你是什麼意思? – Xenione 2012-08-01 08:56:32

+0

如果該按鈕正在根據我的音頻設置首選drawable。所以,我的音頻播放實現是在這個適配器內部設置的。無論如何,如果沒有事情發生,我可能會將此實現轉移到我的活動中。 – 2012-08-01 09:01:02