警报对话框.生成器错误 - "The constructor AlertDialog.Builder(HelloPlugin) is undefined"



我试图在android中显示一个警报框,但在新的AlertDialog.Builder(this)中的"this"给出了错误,"构造器AlertDialog.Builder(HelloPlugin)是未定义的"。有人知道怎么解决这个问题吗?

Java:

public class HelloPlugin extends Plugin implements iRcpEvent2,
    OnCompletionListener, IOnHandlerMessage {
public static final String KEY_ENCODING = "my_encoding";
public static final String KEY_SAVELOG = "my_saveLog";
public static final String NATIVE_ACTION_STRING = "nativeAction";
public static final String SUCCESS_PARAMETER = "success";

public PluginResult execute(String action, JSONArray dataArray,
        String callbackId) {
    if (NATIVE_ACTION_STRING.equals(action)) {
        String resultType = null;
        try {
            resultType = dataArray.getString(0);
        } catch (Exception ex) {
            Log.d("HelloPlugin", ex.toString());
        }
        if (resultType.equals(SUCCESS_PARAMETER)) {
            RcpApi2 rcpAPI = RcpApi2.getInstance();
            rcpAPI.setOnRcpEventListener(this);
            try {
                boolean t = rcpAPI.open();
                if (t = true) {
                    try {
                        boolean k = rcpAPI.startReadTagsWithRssi(maxTags,
                                maxTime, repeatCycle);
                        if (k = true) {
                            AlertDialog.Builder builder = new AlertDialog.Builder(this);
                            builder.setTitle("Message")
                                .setNeutralButton("OK", null);
                            AlertDialog dialog = builder.create();
                            dialog.show();
                            return new PluginResult(PluginResult.Status.OK, k);
                        }
                    } catch (Exception e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                } else {
                    return new PluginResult(PluginResult.Status.ERROR,
                            "Reader Not Opened :(");
                }
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } else {
            return new PluginResult(PluginResult.Status.ERROR,
                    "Oops, Error :(");
        }
    }
    return null;
}

构造函数必须获取上下文

AlertDialog

尝试使用getApplicationContext()

或将Context传递给这个类

如果有人想知道这个,这里是答案:

要获取Cordova插件的上下文,你可以使用下面的代码:

((Activity)ctx)

例如,如果你想创建一个警报生成器,可以这样做:

AlertDialog.Builder builder1 = new AlertDialog.Builder(((Activity)ctx));
builder1.setMessage("Test Alert");
AlertDialog alert11 = builder1.create();
alert11.show();

希望这对你有帮助!

最新更新