【发布时间】:2015-06-07 05:40:18
【问题描述】:
我正在使用片段活动创建一个简单的应用程序。
它运行良好。现在,每次我用正在运行的应用程序按下手机的后退按钮时,它总是终止。
所以我决定添加一个自定义对话框,如果用户想要关闭应用程序,它将使用“YES”或“NO”按钮作为验证运行。
我的代码::
MainActivity.java
//NOTE: I want to call the custom dialog at the backpressed event
@Override
public void onBackPressed() {
super.onBackPressed();
Fragment fragment = null;
fragment = new ConfirmClose();
}
close_dialog.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_root"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:padding="10dp" >
<TextView
android:id="@+id/confirmToPrint"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="@string/confirm_to_close" <!-- Do you really want to close? --->
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>
ConfirmClose.java
import android.app.AlertDialog;
import android.app.Fragment;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class ConfirmClose extends Fragment{
public ConfirmClose(){
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View promptView = inflater.inflate(R.layout.close_dialog, container);
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(getActivity().getApplicationContext());
alertDialogBuilder.setView(promptView);
// setup a dialog window
alertDialogBuilder
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {;
System.exit(0);
//this.finish();
}
})
.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
dialog.cancel();
}
});
// create an alert dialog
AlertDialog alertD = alertDialogBuilder.create();
alertD.show();
return promptView;
}
}
现在,没什么错误,没什么问题,我认为它会起作用,但是当我按下手机的后退按钮和正在运行的应用程序时,
什么都没有发生,它只是像正常关闭一样关闭,自定义对话框没有显示。谁能帮我解决这个问题?
非常感谢!
注意:我正在使用我的旧安卓手机来测试应用程序。
【问题讨论】:
标签: java android android-fragments android-dialogfragment android-dialog