从Android键盘内部打开对话框

时间:2018-08-24 00:48:20

标签: java android mobile dialog keyboard

所以我要制作这个键盘应用程序。

我得到了用户键入的单词,然后他/她键入了某个特定的单词,我想显示一个对话框,提示是/否。

我可以使该应用程序显示Toast,并且可以运行,但是随后我可能没有用户的反馈。

如果我使用此代码:

DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        InputConnection ic = getCurrentInputConnection();
        switch (which){
            case DialogInterface.BUTTON_POSITIVE:
                ic.deleteSurroundingText(palavra.length(), 0);
                break;
            case DialogInterface.BUTTON_NEGATIVE:
                dialog.dismiss();
                break;
        }
    }
};

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

我收到一个错误消息,因为我没有在“上下文”中使用的活动。我只有KeyboardView。

我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

假设您的WithEventsKeyboardView的子类,则您应该可以调用View。例如:

getContext()

答案 1 :(得分:0)

我做到了!

现在这是我的代码(它可以正常工作!):<​​/ p>

AlertDialog alertDialog = new AlertDialog.Builder(this)
        .setTitle("Palavra  ofensiva")
        .setMessage("Deseja mudar a palavra?")
        .create();

alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Sim",  new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        InputConnection ic = getCurrentInputConnection();
        ic.deleteSurroundingText(palavra.length(), 0);
        palavra = "";
    }
});
alertDialog.setButton(AlertDialog.BUTTON_NEGATIVE, "Não", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        dialog.dismiss();
    }
});
alertDialog.show();