0

我的一些 UI 对话框中有一些蓝色按钮,例如:

图片 http://freigabe.philweb.de/bubblr/20120724_dialog_blue-button.png

我怎样才能避免按钮有焦点?我尝试了一些事情,messageBox.getCurrentFocus().clearFocus(); 但是 evrything 使我的应用程序崩溃了。

这是我的代码:

case askRudeMode:
{   
    messageBox = new AlertDialog.Builder(context).create();
    messageBox.setTitle(dialogSubject);
    messageBox.setMessage(dialogText);
    messageBox.setButton(bubblr.lang.getString("YES"), new OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {

        Gdx.app.postRunnable(new Runnable(){
            @Override
            public void run() {
                bubblr.prefs.setRudeMode(false);    //----- disable rudemode -> save to prefs
                bubblr.prefs.setAskRudeMode();
            }
        });
    }
});
messageBox.setButton2(bubblr.lang.getString("NO"), new OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {    

        Gdx.app.postRunnable(new Runnable() {
            @Override
            public void run() {
                bubblr.prefs.setRudeMode(true); //----- enable rudemode -> save to prefs
                bubblr.prefs.setAskRudeMode();
            }
        });
    }
});

// messageBox.getCurrentFocus().clearFocus();                                               // führt zu crash der app
//      if (messageBox.getCurrentFocus() != null) messageBox.getCurrentFocus().clearFocus();    // funktioniert nicht :(

    messageBox.show();
    break;
}

其他对话框没有焦点按钮....这是为什么呢?

再见菲尔

4

2 回答 2

0

而不是只使用按钮,而是使用正面和负面的按钮:

case askRudeMode:
{   
    messageBox = new AlertDialog.Builder(context).create();
    messageBox.setTitle(dialogSubject);
    messageBox.setMessage(dialogText);
    messageBox.setPositiveButton(bubblr.lang.getString("YES"), new OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {

        Gdx.app.postRunnable(new Runnable(){
            @Override
            public void run() {
                bubblr.prefs.setRudeMode(false);    //----- disable rudemode -> save to prefs
                bubblr.prefs.setAskRudeMode();
            }
        });
    }
});
messageBox.setNegativeButton(bubblr.lang.getString("NO"), new OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {    

        Gdx.app.postRunnable(new Runnable() {
            @Override
            public void run() {
                bubblr.prefs.setRudeMode(true); //----- enable rudemode -> save to prefs
                bubblr.prefs.setAskRudeMode();
            }
        });
    }
});
于 2012-07-27T07:38:17.723 回答
0

只需在此调用后添加以下代码:“messageBox.show();”

Button button = (Button) messageBox.findViewById(android.R.id.button1);
button.setFocusable(false);

此代码避免聚焦您的第一个对话框按钮。

于 2012-07-27T07:50:39.950 回答