我使用以下代码段创建了一个对话活动。我为这个活动使用了一个半透明的主题。所以它看起来很整洁。
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()
但这没有帮助。
注意:当我第一次按下时不会调用 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" />