0

UI ダイアログの一部に、次のような青いボタンがいくつかあります。

画像 http://freigabe.philweb.de/bubblr/20120724_dialog_blue-button.png

ボタンがフォーカスされないようにするにはどうすればよいですか? 私はいくつかのことを試しmessageBox.getCurrentFocus().clearFocus(); ましたが、すべてが私のアプリをクラッシュさせました。

ここに私のコードがあります:

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

この呼び出しの後に次のコードを追加するだけです: "messageBox.show();"

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

このコードは、最初のダイアログ ボタンにフォーカスすることを回避します。

于 2012-07-27T07:50:39.950 に答える
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 に答える