我是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