Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对话框将不显示_Java_Android - Fatal编程技术网

Java 对话框将不显示

Java 对话框将不显示,java,android,Java,Android,我创建了一个AlertDialogFragment类,我试图用下面的代码从另一个类中显示它,但我不断收到一个错误,将类型从FragmentTransaction更改为FragmentManager。如果我将其更改为FragmentManager,我会收到一条更改为FragmentTransaction的消息,每当我更改为FragmentTransaction时,我都会收到一条更改为FragmentManager的消息: 以下是显示alertDialog的代码: FragmentTransacti

我创建了一个AlertDialogFragment类,我试图用下面的代码从另一个类中显示它,但我不断收到一个错误,将类型从FragmentTransaction更改为FragmentManager。如果我将其更改为FragmentManager,我会收到一条更改为FragmentTransaction的消息,每当我更改为FragmentTransaction时,我都会收到一条更改为FragmentManager的消息:

以下是显示alertDialog的代码:

FragmentTransaction ft= getFragmentManager().beginTransaction();
AlertDialogFragment newFragment= new AlertDialogFragment();
newFragment.show(ft, "alertDialog");
下面是该类的代码:

public class AlertDialogFragment extends android.support.v4.app.DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder builder
    = new AlertDialog.Builder(getActivity());
    builder.setMessage("Staying in Touch With The Ones You Love");
    builder.setTitle("Togetherness");
    builder.setCancelable(false);
    builder.setPositiveButton("yes", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub

        }
    });
    builder.setNegativeButton("No", new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.cancel();

        }
    });
    return builder.create();
}
}
试用

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();

要显示片段,您需要替换现有片段或向现有视图添加新片段

编辑:抱歉,没有注意到这是一个对话框片段。 使用以下命令:

// DialogFragment.show() will take care of adding the fragment
// in a transaction.  We also want to remove any currently showing
// dialog, so make our own transaction and take care of that here.
FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment prev = getFragmentManager().findFragmentByTag("alertDialog");
if (prev != null) {
    ft.remove(prev);
}
ft.addToBackStack(null);

// Create and show the dialog.
newFragment.show(ft, "alertDialog");
请看下面的示例:

请记住,片段是在API级别11中引入的。如果您使用的是较旧的API级别,请按照此处的说明使用所有片段的支持库(我看到您的
对话框fragment
已经从支持库
FragmentDialog
继承)


查看本教程-->这正是我想要的。