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

java – 提供错误的AlertDialog示例

我是Java / Android开发的新手(我昨晚开始学习)所以我完全有可能做一些非常愚蠢的事情.然而,经过一个多小时的谷歌搜索,我什么也没想出来.我正在使用Eclipse作为我的编辑器.

我正在阅读AlertDialog的文档here,这给出了一个例子:

public static class MyAlertDialogFragment extends DialogFragment {

    public static MyAlertDialogFragment newInstance(int title) {
        MyAlertDialogFragment frag = new MyAlertDialogFragment();
        Bundle args = new Bundle();
        args.putInt("title", title);
        frag.setArguments(args);
        return frag;
    }

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        int title = getArguments().getInt("title");

        return new AlertDialog.Builder(getActivity())
                .setIcon(R.drawable.alert_dialog_icon)
                .setTitle(title)
                .setPositiveButton(R.string.alert_dialog_ok,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            ((FragmentAlertDialog)getActivity()).doPositiveClick();
                        }
                    }
                )
                .setNegativeButton(R.string.alert_dialog_cancel,
                    new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int whichButton) {
                            ((FragmentAlertDialog)getActivity()).doNegativeClick();
                        }
                    }
                )
                .create();
    }
}

我最初重写它,所以我可以开始将一些方法提交到内存,但得到一个错误“FragmentAlertDialog无法解析为类型”.我点击Ctrl Shift O以确保我有正确的导入,但它仍然没有消失.

所以我复制/粘贴了示例代码并按以下顺序执行了以下操作:

>按Ctrl Shift O右键导入(使用android.app.DialogFragment,而不是android.support.v4.app.DialogFragment)
>在顶部声明我的包裹
>分别用android.R.string.ok和android.R.string.cancel替换了R.string.alert_dialog_ok和R.string.alert_dialog_cancel
>删除了setIcon(),因为我还没有要放入的图标

我还在收到错误

> FragmentAlertDialog无法解析为类型(x4)
> MyAlertDialogFragment类的非法修饰符;只有公共的,抽象的和决赛是允许的

我做错了什么,或者示例代码有问题吗?

解决方法:

1.FragmentAlertDialog

确保要转换为的Activity命名为FragmentAlertDialog.确保还保存所有内容 – 有时Eclipse在保存所有内容之前不会建立连接.

2.Illegal modifier for the class MyAlertDialogFragment; only public, abstract & final are permitted

取出静态修饰符:

public class MyAlertDialogFragment extends DialogFragment {

或保持静态并移动此片段,使其包含在您想要的活动中.这意味着MyAlertDialogFragment应该在Activity的结束括号之前.

I’m new to Java/Android development

不要从如此复杂的事情开始.学习Java然后转到Android.

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

相关推荐