2011-06-30 36 views
2

これは単純に機能しません。CheckBox.setChecked()が機能していません

CheckBox chck_bluetooth = (CheckBox) findViewById(R.id.chck_bluetooth); 
if (mProperties.getProperty("bluetooth") == "true") { 
    chck_bluetooth.setChecked(true); 
    Log.i("Properties", "bluetooth = " + mProperties.getProperty("bluetooth")); 
} else { 
    chck_bluetooth.setChecked(false); 
    Log.i("Properties", "bluetooth = " + mProperties.getProperty("bluetooth")); 
} 

まあ、ログは、Bluetoothが「真」に設定されたことを私に言ったので、私は、チェックボックスに問題がなければならないと思います。

+0

いいえ、ログには、 'mProperties.getProperties(「ブルートゥース」)は' 'true'にあったことを言いましたコードが "真の"パス(最初のパス)を通過したわけではありません。ロギング時には、両方のケースで同じものをログに記録しないようにしてください。そうでなければ、どのパスが取られたのか、どのように分かりますか? – dmon

+0

違いは "bluetooth"の値です。それは「真実」または「偽」のいずれかである可能性があります。両方の値はプロパティーファイルに設定されています – JustBasti

+0

もちろん、私はあなたが書いたことは 'if(" true "){doA();} else {doB();と等価であるということを指摘していませんでした。 } Log.i(...) '。だから、「ログでブルートゥースが「true」に設定されているというメッセージが表示されても、実際にcheckbox.setChecked(true)が呼び出されたことはわかりません。 "今何を意味しているのですか? – dmon

答えて

5

プロパティの値が文字列である場合、あなたはそれを比較するためにequals()を使用する必要があります。

if (mProperties.getProperty("bluetooth").equals("true")) { 
+0

働いています。ありがとう:) – JustBasti

関連する問題