主题有点说明了一切.. 我正在向用户请求 PIN 码,如果他们输入了 PIN 码,请单击确定肯定按钮,并且 PIN 不正确 我想显示 Toast 但保持对话框打开。目前它会自动关闭。当然,这是需要纠正的非常微不足道的事情,但还找不到答案。
Thanks..
您不需要创建自定义类。您可以为 AlertDialog 注册一个 View.OnClickListener。该侦听器不会关闭 AlertDialog。这里的技巧是,您需要在显示对话框后注册侦听器,但它可以在 OnShowListener 内轻松完成。您可以使用辅助布尔变量来检查是否已完成此操作,以便仅执行一次:
/*
* Prepare the alert with a Builder.
*/
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setNegativeButton("Button", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {}
});
this.alert = b.create();
/*
* Add an OnShowListener to change the OnClickListener on the
* first time the alert is shown. Calling getButton() before
* the alert is shown will return null. Then use a regular
* View.OnClickListener for the button, which will not
* dismiss the AlertDialog after it has been called.
*/
this.alertReady = false;
alert.setOnShowListener(new DialogInterface.OnShowListener() {
@Override
public void onShow(DialogInterface dialog) {
if (alertReady == false) {
Button button = alert.getButton(DialogInterface.BUTTON_NEGATIVE);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do something
}
});
alertReady = true;
}
}
});
该解决方案的部分内容由http://groups.google.com/group/android-developers/browse_thread/thread/fb56c8721b850124#
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)