Android: TabHost с ListView CheckBox's - PullRequest
       15

Android: TabHost с ListView CheckBox's

0 голосов
/ 28 февраля 2010

У меня есть TabHost, который содержит 5 TabHost.TabSpec. Каждый TabSpec - это ListView, который заполняется с помощью SimpleCursorAdapter, а источником данных является база данных sqlite3.

Макет, используемый SimpleCursorAdapter, содержит 2 TextViews, которые содержат данные базы данных (один скрытый - который содержит запись базы данных _id и один отображаемый). Третий виджет - это CheckBox. Смотрите макет ниже:

<RelativeLayout 
  android:id="@+id/favoriteRow" 
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  xmlns:android="http://schemas.android.com/apk/res/android">
<TextView 
  android:id="@+id/text0" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content"
  android:visibility="gone"
  android:paddingLeft="5px">  
</TextView>
<TextView 
  android:id="@+id/text1"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content"
  android:layout_toRightOf="@+id/text0"
  android:textColor="@color/listTextColor"
  android:textSize="@dimen/font_size_for_show_row"
  android:paddingTop="@dimen/vertical_padding_for_show_row"
  android:paddingBottom="@dimen/vertical_padding_for_show_row">
</TextView>  
<com.example.subclass.FavoriteCheckBox 
  android:text=""
  android:id="@+id/favorite_checkbox"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:layout_alignParentRight="true"
  android:checked="false">
</com.example.subclass.FavoriteCheckBox>
</RelativeLayout>

Моя главная проблема в том, что я не могу понять, как захватывать / слушать, когда пользователь «нажимает» на CheckBox. Я поместил CheckBox в подкласс FavoriteCheckBox и добавил protected void onClick(View v), но никогда не попадаю туда, когда нажимаю на флажок.

Любое предложение о том, что мне не хватает.

ТИА,

ДБ

1 Ответ

0 голосов
/ 11 июня 2010

Вам просто нужно добавить слушатель к экземпляру, который вы создаете в своем коде:

CheckBox repeatChkBx =
    ( CheckBox ) findViewById( R.id.favorite_checkbox );
repeatChkBx.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( isChecked )
        {
            // perform logic
        }

    }
});

Через: http://mgmblog.com/2008/02/18/android-checkbox-oncheckedchangelistener/

...