避免在按下后退按钮时关闭警报对话框?
Avoid Alert Dialog getting closed when back button pressed?
首先要说的是,这是看教程做的。这是我从广播接收器调用的自定义警报对话框 activity 部分。唯一的问题是单击后退按钮。警报对话框 activity 启动后,当我按下后退按钮时,它会关闭。
public class AlertDialogActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setFinishOnTouchOutside(false);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
setContentView(R.layout.activity_inmsgdialog);
}
@Override
public void onBackPressed()
{
super.onBackPressed();
Toast.makeText(getApplicationContext(), "Back Pressed", Toast.LENGTH_SHORT).show();
}
}
我已经尝试 onBackPressed
并且我能够看到 toast 消息,但是 activity 正在关闭。
您可以使用以下选项来处理后退按钮按下
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//your code
return true;
} else {
}
}
看这里:
@Override
public void onBackPressed()
{
super.onBackPressed(); //Remove this line
Toast.makeText(getApplicationContext(), "Back Pressed", Toast.LENGTH_SHORT).show();
}
如果您想禁用 activity 的后退按钮,请不要调用 super.onBackPressed();
代码。所以去掉这一行。希望对你有帮助。
不要传播事件,你应该是好的。
@Override
public void onBackPressed()
{
//don't call super
}
首先要说的是,这是看教程做的。这是我从广播接收器调用的自定义警报对话框 activity 部分。唯一的问题是单击后退按钮。警报对话框 activity 启动后,当我按下后退按钮时,它会关闭。
public class AlertDialogActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setFinishOnTouchOutside(false);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
setContentView(R.layout.activity_inmsgdialog);
}
@Override
public void onBackPressed()
{
super.onBackPressed();
Toast.makeText(getApplicationContext(), "Back Pressed", Toast.LENGTH_SHORT).show();
}
}
我已经尝试 onBackPressed
并且我能够看到 toast 消息,但是 activity 正在关闭。
您可以使用以下选项来处理后退按钮按下
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//your code
return true;
} else {
}
}
看这里:
@Override
public void onBackPressed()
{
super.onBackPressed(); //Remove this line
Toast.makeText(getApplicationContext(), "Back Pressed", Toast.LENGTH_SHORT).show();
}
如果您想禁用 activity 的后退按钮,请不要调用 super.onBackPressed();
代码。所以去掉这一行。希望对你有帮助。
不要传播事件,你应该是好的。
@Override
public void onBackPressed()
{
//don't call super
}