如何获取与自定义列表视图中的切换按钮相关的相应textview?

时间:2012-12-18 17:54:16

标签: android

我有一个使用costumized ArrayAdapter的listview。我在list list(single_row.xml)中有一个textview和一个togglebutton。我的切换按钮用于标记/取消标记我的列表项作为收藏夹。为了更新我的数据库(SQLite),我需要访问togglebutton旁边的相应textview。

我的问题是我不知道如何获得相应的textview。我不确定它们是如何相关的。

我希望问题很清楚。 感谢

1 个答案:

答案 0 :(得分:0)

提高listView性能的一种推荐方法是在ViewHolder方法中使用getView()。此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;
}