BroadcastReceiverによって開始されたように見えるAlertDialogがあります。そのため、AlertDialogは、実際にその下にあるアクティビティがわからなくても、私のアクティビティのいずれかの上に表示される場合があります。
private void showAlert(Context context, String s) {
final AlertDialog alertDialog = new AlertDialog.Builder(context)
.create();
alertDialog.setTitle(context.getString(R.string.SMS_Alert_title));
alertDialog.setMessage(s);
alertDialog.setButton(context.getString(R.string.alert_OK),
new AlertDialog.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return; //can't call the underlying activity's ui update method bec I don't know which activity is actually underlying
}
});
alertDialog.setIcon(R.drawable.icon);
alertDialog.show();
}
AlertDialogの[OK]ボタンを押して閉じると、基になるアクティビティのすべてのボタンの押された状態が押されなくなります。ボタンが押された状態で異なるpngを表示するという理由だけで、ボタンを押したままにする必要があります。これは、ボタンが押されたときに「オン」のままであることを示すためにも使用します。(この場合、トグルボタンは使用できません)
理想的には、基になるアクティビティのUIを更新する必要がありますがonResume
、AlertDialogが閉じられたときに呼び出されません。
また、ALertDialog OKボタンを押したときにUI更新メソッドを呼び出すことはできません。これは、AlertDialogの下に実際にあるアクティビティがわからないためです(ALertDialogはアクティビティの上に表示される場合があるため)。
(問題を十分に説明できればと思います)
btn.setPressed(true)
ps単に避けたいと言う代わりに、押されていないボタンの背景を押されたpngに変更することはできますが。
どうもありがとう