ToggleButton
を私のアプリケーションでブックマークのように使用しようとしました。私はこれを初めて使用しています。私は以下のようにonCreateView()
の下で私のトグルボタンを宣言している:アンドロイドのトグルボタンの状態は常にtrue
bmark = (ToggleButton) v.findViewById(R.id.bmark);
bmark.setChecked(false);
私はちょうど状態を切り替えるとToast
メッセージを表示しようとしています!私が試した下記:
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
bmark.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean status;
if (bmark.isChecked()) status = true;
else status = false;
Log.w("Bmark status",String.valueOf(status));
if (status) {
bmark.setChecked(false);
Log.w("Bmark after true",String.valueOf(bmark.isChecked()));
Toast.makeText(getActivity(), "Bookmark removed!", Toast.LENGTH_SHORT).show();
} else {
bmark.setChecked(true);
Log.w("Bmark after false",String.valueOf(bmark.isChecked()));
Toast.makeText(getActivity(), "Post Bookmarked..!", Toast.LENGTH_SHORT).show();
}
}
});
私は「偽」に設定しましたが、私はボタンを押すたびに、ステータスは、最初に「真」を読んで。私がsetChecked(false)
に電話をしたら、それも偽になります。しかし、もう一度クリックすると、「偽」の代わりに「真」と表示されます。
なぜこのようなことが起こるのかわかりません。私はそれをクリックする度にトグルしたいだけです。 Plsは私を助ける!事前に感謝:)
FYIステータスを追跡するための論理フラグを処理する必要があるため、受け入れられた回答は最適な解決策ではありません。 – earthw0rmjim
は、元のコードであったため、別の場所で使用されている可能性がありますので、最適な状態にする必要はありません。 –
@MaciejSikora 'onClick()'のローカル変数であれば、別の場所でどう使いますか?あなたのコメントは意味をなさない。 – earthw0rmjim