我是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 以确保我有正确的导入,但它仍然没有消失。
所以我复制/粘贴了示例代码并按以下顺序执行了以下操作:
android.app.DialogFragment
,而非android.support.v4.app.DialogFragment
) R.string.alert_dialog_ok
和R.string.alert_dialog_cancel
取代android.R.string.ok
和android.R.string.cancel
setIcon()
,因为我还没有要放入的图标我仍然遇到错误:
FragmentAlertDialog
无法解析为类型(x4)MyAlertDialogFragment
的非法修饰符;只有public
,abstract
&允许final
我做错了什么,或示例代码有问题吗?
答案 0 :(得分:2)
1.FragmentAlertDialog
确保要转换为的活动名为FragmentAlertDialog
。确保还保存所有内容 - 有时Eclipse在保存所有内容之前不会建立连接。
2. MyAlertDialogFragment类的非法修饰符;只有公共的,抽象的和允许进入决赛
取出static
修饰符:
public class MyAlertDialogFragment extends DialogFragment {
或保留static
并移动此片段,使其包含在您想要的活动中。这意味着MyAlertDialogFragment
应位于您的Activity中,之前该Activity的结束括号。
我是Java / Android开发的新手
答案 1 :(得分:1)
您可以尝试使用这些代码来实现警告对话框
AlertDialog.Builder alert2 = new AlertDialog.Builder(this);
alert2.setTitle("Your Title");
alert2.setMessage("Your Messages");
final EditText input2 = new EditText(this);
input2.setInputType(InputType.TYPE_CLASS_PHONE);
alert2.setView(input2);
alert2.setPositiveButton(GButton, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Do something with value!
try
{
// do your stuff here
}
catch(Exception e)
{
}
}
});
alert2.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
// Canceled.
}
});
alert2.show();