简体   繁体   English

Android:如何避免对话框中的蓝色(聚焦)按钮?

[英]Android: How to avoid blue (focussed) buttons in dialogs?

i have some blue buttons in some of my UI dialogs, like: 我的一些UI对话框中有一些蓝色按钮,例如:

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

how can i avoid that the buttons have focus? 如何避免按钮具有焦点? i tried some things like messageBox.getCurrentFocus().clearFocus(); 我尝试了一些类似messageBox.getCurrentFocus().clearFocus(); but evrything crashed my app. 但一切都崩溃了我的应用程序。

here is my code: 这是我的代码:

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;
}

other dialogs dont have focussed buttons.... why is that? 其他对话框没有焦点按钮...。为什么?

bye phil 再见菲尔

instead of using only Button make use of positive and negative Buttons as: 而不是仅使用Button,请使用正负按钮如下:

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();
            }
        });
    }
});

Just add the following code after this call: "messageBox.show();" 只需在此调用之后添加以下代码:“ messageBox.show();”

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

This code avoids to focuse your first dialog button. 此代码避免将焦点放在第一个对话框按钮上。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM