トグル ボタンが isChecked() であるかどうか、およびその背景が特定のドローアブルと等しいかどうかを確認しようとしています。私はこれを2時間以上取得しようとしてきましたが、解決策がわかりません。
トグルボタンには、ボタンの状態が変更されたときに設定されるはずの画像を含むxmlが設定されています
これは私がこれまでに試みたものです
tbTest1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (tbTest1.isChecked())
{
if(tbTest1.getBackground().equals("testimg.png")) {
Toast.makeText(Test.this, "Test Image Added", Toast.LENGTH_LONG).show();
}
}
else
{
//fileNames.add("testimg.png");
//isChecked--;
Toast.makeText(Test.this, "Test Image Removed", Toast.LENGTH_LONG).show();
}
}
});
これでは結果が得られません
私もこれを試しました
tbTest1.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
if (tbTest1.isChecked() && tbTest1.getBackground().equals(R.drawable.testimg))
{
Toast.makeText(Test.this, "Test Image Added", Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(Test.this, "Test Image Removed", Toast.LENGTH_LONG).show();
}
}
});
これは ELSE ステートメントに直接スキップします
testimg の xml は次のとおりです。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/testimg1"
android:state_checked="false" />
<item android:drawable="@drawable/testimg2"
android:state_checked="true"/>
</selector>
アクティビティが読み込まれると、TB 状態はオフになり、イメージは testimg1 に設定されます。ユーザーが TB を押すと、状態が on に変わり、画像が testimg2 に変わり、(後で追加される ArrayList に) 追加されたというメッセージをトーストします。ユーザーがもう一度押すと、(前述の ArrayList から) 削除されたことを示すトーストが表示されるはずです。