[英]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.