2012-12-18 55 views
0

我有一個listview使用一個costumized ArrayAdapter。我有一個textview和一個togglebutton在我的列表子(single_row.xml)內。我的切換按鈕旨在標記/取消標記我的列表項目爲收藏夾。爲了更新我的數據庫(SQLite),我需要訪問旁邊的togglebutton相應的textview。如何獲得在costum列表視圖中與togglebutton相關的相應textview?

我的問題是,我不知道如何獲得相應的textview。我不確定他們是如何相關的。

我希望問題很清楚。 謝謝

+0

訪問'TextView'在哪裏?在'Button'的'OnCheckedChangeListener'中? – Luksprog

回答

0

提高listView性能的一種建議方法是在getView()方法中使用ViewHolder。此ViewHolder對象通常使用setTag()方法附加到視圖,以便能夠檢索行中的所有視圖,例如onClick(View)偵聽器方法。

在你的情況下,你可以使用相同的方法,但在ToggleButton中,要附加一個包含該行重要信息的對象。然後,在onCheckedChangedListener中,您將收到已按下的ToggleButton,並使用getTag()方法可以獲取先前存儲的對象以及更新數據庫所需的所有信息。這樣的事情:


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

//Other stuff here 

ToggleButton tb = (ToggleButton)row.findViewById(R.id.toggle_button); 

//Attach to the toggle button whatever object you need 
tb.setTag("Put an object here"); 
tb.setOnCheckedChangedListener(new OnCheckedChangedListener(){ 
     @Override 
     public void onCheckedChanged(CompoundButton button, boolean isChecked){ 
      Object relatedData = button.getTag(); 
      //Update the database with the relatedData 
     } 
}); 

//Other stuff 

return row; 
} 
相關問題