0

所以我正在尝试构建一个显示 3 行的弹出窗口:-时间-事件类型-位置

然后我有两个按钮,确定(这会关闭弹出窗口)和发送到地图(这会向谷歌地图提交明确的意图并将位置发送给它,我还没有编写此代码)

出于某种奇怪的原因,我在 Eclipse 中收到一个错误,上面写着“AlertDialog.Builder 无法解析为一种类型”。我假设我已经正确导入它,并且多次清理它。我不确定如何进行。谢谢您的帮助。

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

public class AlertDialog 
{
public Dialog onCreateDialog(Bundle savedInstanceState) 
{
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Time: " + SMSReceiver.getTime() + "\nIncident: " + 
    SMSReceiver.getCallType() + "\nLocation: " + SMSReceiver.getAddress())
    .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {


        }
    })
    .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {


        }
    });

    return builder.create();

    }
}
4

2 回答 2

3

它实际上不是错误,您错误地使用 AlertDialog 创建了一个类名,该类名实际上已经存在于 android 包中。现在,当您使用 AlertDialog 创建类并尝试访问其 Builder 方法时,它会给您一个错误,因为您的自定义类没有该方法。

您问题的简单解决方案只需将您​​的 AlertDialog 类重命名为其他类名,您的问题就会得到解决。

注意:您的代码中没有其他错误。

我建议您将您的类名更改为任何其他名称,例如说 MyAlertDialog,然后您的类代码将如下所示,(您还需要根据 Java 文件命名约定规则根据您的公共类更改文件名,

public class MyAlertDialog // See change is here
{
    public Dialog onCreateDialog(Bundle savedInstanceState) 
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setMessage("Time: " + SMSReceiver.getTime() + "\nIncident: " + 
                SMSReceiver.getCallType() + "\nLocation: " + SMSReceiver.getAddress())
                .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {


                    }
                })
                .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {


                    }
                });

        return builder.create();

    }
}
于 2012-10-26T02:15:01.440 回答
3

因为你的类名是 AlertDialog。在您的 onCreateDialog() 函数中,

AlertDialog.Builder builder = new AlertDialog.Builder(this);

在这一行中,“AlterDialog”实际上是对您自定义的 AlterDialog 类的引用。如果你改变这个,它应该是工作。

android.app.AlertDialog.Builder builter = new android.app.AlertDialog.Builder(this);
于 2012-10-26T02:20:20.157 回答