微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

扩展超类时不会继承来自 DialogFragment 的 Java .show 方法

如何解决扩展超类时不会继承来自 DialogFragment 的 Java .show 方法

我是 Java 的新手,所以请告诉我是否应该添加任何额外的代码或上下文来使我的问题更好:)

我正在创建一个自定义对话框,当单击列表视图上的项目时将显示该对话框。我扩展了 DialogFragment 超类来自定义它,但是当我尝试使用 .show 方法(在 DialogFragment 超类下)来显示对话框时,我收到一条警告,说它没有定义。

这是我的 Java 类和 onItemClick 代码


import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;

import com.baune.nupa.R;

public class GenderDialogFragment extends DialogFragment {
    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setTitle("Change Gender?")
                .setMessage(R.string.EN_NA_UC_Gender)
                .setPositiveButton(R.string.EN_NA_Change,new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog,int id) {
                    }
                })
                .setNegativeButton(R.string.EN_NA_Cancel,int id) {
                    }
                });
        return builder.create();

    }
}

 lvUC.setonItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent,View view,int position,long id) {
                //Toast.makeText(getContext(),"Hello World",Toast.LENGTH_SHORT).show();
                openDialog();
            }
        });


        return view;
    }

    public void openDialog() {
        GenderDialogFragment genderDialogFragment = new GenderDialogFragment();
        genderDialogFragment.show();
    }
}

我基于 Google 文档中的这个简单示例扩展了超类

public class FireMissilesDialogFragment 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.dialog_fire_missiles)
               .setPositiveButton(R.string.fire,new DialogInterface.OnClickListener() {
                   public void onClick(DialogInterface dialog,int id) {
                       // FIRE ZE MISSILES!
                   }
               })
               .setNegativeButton(R.string.cancel,int id) {
                       // User cancelled the dialog
                   }
               });
        // Create the AlertDialog object and return it
        return builder.create();
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。