java - 方法 show(FragmentManager, String) 不适用于 show(FragmentManager, String) android?

标签 java android android-activity android-alertdialog

我正在尝试获取一个对话框来警告用户应以横向模式查看屏幕。我有一个对话框类和我的 Activity 调用该对话框,但它提示 show(FragmentManager, String) 不适用于 show(FragmentManager, String)。

import my.application.dialogs.OrientationAlertDialog;
import android.app.Activity;
import android.content.res.Configuration;
import android.os.Bundle;

public class StationMapActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
        OrientationAlertDialog dialog = new OrientationAlertDialog();
        dialog.show(getSupportFragmentManager(), "String");
    } else {
        setContentView(R.layout.activity_station_map);
    }
}
}

我的对话框类是:

import my.application.R;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;

public class OrientationAlertDialog extends DialogFragment {
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the Builder class for convenient dialog construction
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage(R.string.landscape_dialog_alert)
               .setPositiveButton(R.string.landscape_dialog_ok, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       System.out.println("OK");
                   }
               })
               .setNegativeButton(R.string.landscape_dialog_cancel, new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog, int id) {
                       System.out.println("CANCEL");
                   }
               });
        return builder.create();
    }
}

我调整了 android 对话框文档中的代码,所以我不确定还能在哪里寻找解决方案。

我尝试过的所有方法,当我按下按钮进入此 Activity 时,应用程序都会崩溃。

Log cat 不会打印任何有用的内容:

[2013-10-09 00:24:17 - my.application] ------------------------------
[2013-10-09 00:24:17 - my.application] Android Launch!
[2013-10-09 00:24:17 - my.application] adb is running normally.
[2013-10-09 00:24:17 - my.application] Performing my.application.MainActivity activity launch
[2013-10-09 00:24:24 - my.application] Application already deployed. No need to reinstall.
[2013-10-09 00:24:24 - my.application] Starting activity my.application.MainActivity on device 00194db94fb33f
[2013-10-09 00:24:25 - my.application] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=my.application/.MainActivity }
[2013-10-09 00:24:26 - my.application] Attempting to connect debugger to 'my.application' on port 8600

最佳答案

您正在使用 android.support.v4.app.DialogFragment,表明您正在尝试使用 Android 支持包的 fragment 反向移植。如果是这种情况,您需要使用 getSupportFragmentManager(),而不是 getFragmentManager()

关于java - 方法 show(FragmentManager, String) 不适用于 show(FragmentManager, String) android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19260418/

相关文章:

android - 由于类转换异常,Dagger 2 注入(inject)失败

java - 运行 getDisplayMetrics() 方法时,使用 gradle 编译给出的值与使用 eclipse 编译的值不同

android - 我们如何获得 Activity 的主题?

java - 在没有 GUI 的情况下启动 JavaFX 应用程序线程

java - 我正在用java创建一个小程序,它要求用户输入5个整数并将其放入一个数组中

java - 在 Java GAE 中使用数据存储存储关系的最佳实践

Android 应用程序挂起。为什么?

Java:无法让等待/通知正常工作 - 并发问题

java - `Caused by: java.lang.RuntimeException: view must have a tag` 的实际含义是什么?

Android SingleTask、SingleTop 和主页按钮