android - DialogFragment 未显示,它打开和关闭速度非常快

标签 android android-dialogfragment

我是 Android 的新手,在工作中得到了一堆客户的源代码来修复。我尝试创建的 DialogFragment 不会保持打开状态。当我逐步执行它时,它会打开,然后在调用 newFragement.show() 时立即再次关闭。

我的onCreateDialog一直告诉我我当前的targetSdk是8,但是我多次来回改成11,甚至重新启动了Android Studio,但仍然告诉我这是错误的。

到目前为止,我发现与此相关的所有其他帖子都没有回答我的问题。我无法让 FragmentActivity 工作。这是我的代码:

ShowUpgradeDialogFragment 类:

public class ShowUpgradeDialogFragment extends DialogFragment {

public Dialog onCreateDialog(Bundle savedInstanceState) {
    // Use the Builder class for convenient dialog construction
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    builder.setMessage(R.string.dialog_builder_message)
            .setPositiveButton(R.string.dialog_builder_positive, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // upgrade
                }
            })
            .setNegativeButton(R.string.dialog_builder_negative, new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    // User cancelled the dialog
                }
            });//*/
    System.out.println ("hello");
    // Create the AlertDialog object and return it
    AlertDialog dialog = builder.create();
    return dialog;
    }
}

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.ila.tax_shield"
      android:versionCode="18" android:versionName="3.2.4">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-sdk
    android:minSdkVersion="11"
    android:targetSdkVersion="18"/>
<fragment android:name=".ShowUpgradeDialogFragment"
              android:label="@string/app_name"
              android:windowIsFloating="true"
              android:background="@android:color/transparent"
              android:screenOrientation="portrait">
</fragment>

// remaining manifest

</manifest>

我的 onCreate 方法:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    DialogFragment newFragment = new ShowUpgradeDialogFragment();
    newFragment.show(getFragmentManager(), "dialog");

    // code

    finish() // wrong and was removed, which solved my bug
   }

display_update_message.xml:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent">

<fragment class="com.ila.tax_shield.fragments.ShowUpgradeDialogFragment"
          android:id="@+id/display_update_message"
          android:layout_weight="1"
          android:layout_height="match_parent"
          android:layout_width="2dp"
          tools:layout="@layout/display_update_message" />

</LinearLayout>

它不喜欢 'android:name="com.ila.tax_shield.fragments.ShowUpgradeDialogFragment"',我不明白为什么

预先感谢您的帮助!

最佳答案

您需要知道的第一件事是 AndroidManifest 不是您声明 fragment 的地方。看看 docs here用于列出 Manifest 文件中的有效项目。

接下来,决定如何显示 ShowUpgradeDialogFragment。对于 DialogFragment,您有以下选项

  • 使用布局 xml 将其嵌入。
  • 使用 FragmentManager 显示它。

现在,如果你想嵌入它,那么只需将你的 fragment 放在布局 xml 中,

或 这样做

DialogFragment newFragment = new ShowUpgradeDialogFragment();
newFragment.show(getFragmentManager(), "dialog");

同时执行以上两项对我来说毫无意义。

关于android - DialogFragment 未显示,它打开和关闭速度非常快,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18662763/

相关文章:

Android:DialogFragment 和通用 xml

android - 如何在 android 中创建自定义启动 Activity 方法?

android - 由 : org. koin.core.error.InstanceCreationException : Could not create instance for [type:Factory, primary_type 引起

android - 如何全屏显示对话框 fragment ?

android - 嵌套的 DialogFragment 在旋转后被解雇

android - android中 fragment/对话框之间的通信

android - 显示带适配器的 AlertDialog 的 DialogFragment 无法在方向更改后存活

Android studio 3.0 不生成签名的apk

android - 您可以使用 Android 上的指纹传感器找到指纹类型(例如食指、中指等)吗?

android - 是否有可能以编程方式在 android 中压缩音频和视频文件?