我有一个由 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 上的“确定”按钮将其关闭时,我在基础活动中的所有按钮的按下状态都变为未按下状态。我需要它们保持按下状态只是因为我的按钮在按下状态下显示不同的 png - 我也用它来显示它们在按下时保持“打开”状态。(在这种情况下我不能使用切换按钮)
理想情况下,我只需要更新底层活动的 UI,但onResume
不会在 AlertDialog 被解除时调用。
此外,当按下 ALertDialog OK 按钮时,我无法调用任何 UI 更新方法,因为我不知道哪个活动实际上在 AlertDialog 下(因为 ALertDialog 可能出现在任何活动之上)
(我希望我能很好地解释这个问题)
ps 虽然我可以将未按下按钮的背景更改为按下的 png,而不仅仅是说btn.setPressed(true)
我想避免它。
非常感谢