2016-03-29 9 views
0

私のリスト(recyclerview)のヘッダーにトグルボタンがあります。しかし、それが押されたときの状態は変化していません。ここ トグルボタンがRecyclerViewヘッダーで機能していません

はそのonClickの

if (btnFav.isChecked()) { 
        btnFav.setChecked(false); 
       } else { 
        btnFav.setChecked(true); 
       } 

       Toast.makeText(itemView.getContext(), "check state is =" + btnFav.isChecked(), Toast.LENGTH_LONG).show(); 

上のコードであり、これはまた、私は、アダプタのヘッダービューをバインドするためにリサイクルのviewholderを使用していたXML

<ToggleButton 
     android:id="@+id/btn_fav" 
     android:layout_width="32dp" 
     android:layout_height="32dp" 
     android:background="@drawable/btn_fav_bg" 
     android:clickable="true" 
     android:padding="10dp" 
     android:textOff="" 
     android:textOn="" /> 

でトグルボタンです。私は唯一とトーストが表示されたトグルボタンをクリックし、これまで 「の状態をチェックは=偽である」

+0

ここでこのコードを実装しましたか? recyclerviewのアダプターの – Jois

+0

。 – awaistoor

答えて

1

OnClickListenerあなたがボタンの本来の行動を相殺さToggleButtonに設定しました。 ToggleButtonは、クリックすると自分のチェック状態を処理します。 OnClickListenerの代わりにOnCheckedChangeListenerを設定し、そこにToastを移動してください。

btnFav.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
     @Override 
     public void onCheckedChanged(CompoundButton button, boolean isChecked) { 
      Toast.makeText(itemView.getContext(), "check state is =" + isChecked, 
       Toast.LENGTH_LONG).show(); 
     } 
    } 
); 
+0

これは機能しますが、ボタンの状態は変わりません。たとえば、私はバックグラウンドで心臓を追加しました。心臓はその状態を変えない。 (また、心臓の背景はdrawable xmlファイルです) – awaistoor

+0

Drawable XMLは状態リストですか? –

+0

はいここにxml 'セレクタxmlns:android =" http://schemas.android.com/apk/res/android "> awaistoor

関連する問題