我使用以下代码片段创建了一个对话框活动。我为这个activity.So使用了一个半透明的主题,它看起来很整洁。
public class DialogActivity extends Activity {
AlertDialog alertDialog;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = getIntent();
AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Title");
alertDialog.setMessage("Body");
alertDialog.setIcon(R.drawable.ic_launcher);
aleratDialog.setButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
DialogActivity.this.finish();
}
});
alertDialog.show();
}
@Override
protected void onPause() {
if(alertDialog!=null) {alertDialog.dismiss();}
super.onPause();
}
@Override
protected void onStop() {
if(alertDialog!=null) {alertDialog.dismiss();}
super.onStop();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if ((keyCode == KeyEvent.KEYCODE_BACK)) {
finish();
}
return super.onKeyDown(keyCode, event);
}
}当用户单击“后退”按钮时,我遇到了问题。当用户这样做时,活动仍然停留在前台。当用户试图返回时,我尝试重写onKeyDown方法以调用finish(),但这没有帮助。
注意:当我第一次按back时,不会调用onBackPressed或onKeyDown方法。( ActionBar保持不变)我必须再次按它才能到达那里,然后该活动实际上就消失了
我想这与我的清单条目有关
<activity
android:name=".DialogActivity"
android:launchMode="singleInstance"
android:noHistory="true"
android:label="@string/app_name"
android:configChanges="orientation"
android:theme="@android:style/Theme.Holo.Dialog" />发布于 2015-10-27 20:41:03
改变这一点
android:launchMode="singleInstance"
至
android:launchMode="singleTask"或android:launchMode="singleTop"
https://stackoverflow.com/questions/12879904
复制相似问题