2016-06-29 5 views
2

私はチェックボックスの列を持っています。その列の一番上の行はその特定の列のCheckAllチェックボックスです。一番左の列の最初のCheckAllチェックボックスからCheckallのチェックを外すと、残りのCheckAllチェックボックスのチェックを外したいと思います。mycheckbox.setSelected(false)は意味を持ちません

しかし、mycheckbox.setSelected(false)は効果がありません。しかし、mycheckbox.setEnabled(false)(テストの場合と同じ)を実行しても機能し、チェックボックスは無効になっています。

ちなみに、これはカスタムアダプタを使用したリストビューの「ヘッダー行」です。リストビューの内容は期待通りに機能します。

チェックボックスをオフにする方法はありますか?

+0

コードを投稿してください。 – Vucko

答えて

1

setSelectedの代わりにmycheckbox.setChecked(false)を使用してください。

私はそれが何を見てsetSelectedを探してみたが、チェックボックスのofficial documentationに、私は、このメソッドはおそらくクラスのいずれかで発見されたことを私に示唆された(それを見つけることができませんでしたCheckBox)。 Androidのメーカーでそれを入力して試してみました:

CheckBox cb = new CheckBox(getApplication()); 
cb.setSelected(true); 

は、方法(CTRL+Click)の実装に行き、ほぼすべての他のウィジェットが由来するのTextViewクラス、でこれを見た:

@Override 
public void setSelected(boolean selected) { 
    boolean wasSelected = isSelected(); 

    super.setSelected(selected); 

    if (selected != wasSelected && mEllipsize == TextUtils.TruncateAt.MARQUEE) { 
     if (selected) { 
      startMarquee(); 
     } else { 
      stopMarquee(); 
     } 
    } 
} 

クラスには、setCheckedメソッドが含まれていますが、setSelectedは、TextViewです。つまり、setSelectedは、textViewが確かにチェック/チェック解除できないため、全く別のことをしています。

これがうまく説明されることを願っています。

+1

私は寝る必要があります。ありがとう。 – RVDowning

+0

ああ、あなた自身を打ち負かさないでください。それは大失敗ですが、その背後にある説明は素朴ではありません。 'setSelected'は、公正であるために、この文脈ではあいまいです。 – Vucko

+1

omgこれほど多くの年をプログラミングAndroidと私はまだこのようなエラーで立ち往生していたhahahaha(恥)xD – MiguelHincapieC

関連する問題