Android Confirmation对话框返回true或false

Android Confirmation对话框返回true或false,第1张

概述似乎没有简单的方法来获取一个Alert对话框返回一个简单的值. 该代码不起作用(答案变量无法从侦听器中设置,实际上甚至不能编译) public static boolean Confirm(Context context) { boolean answer; AlertDialog dialog = new AlertDialog.Builder(context).create( 似乎没有简单的方法来获取一个Alert对话框来返回一个简单的值.
该代码不起作用(答案变量无法从侦听器中设置,实际上甚至不能编译)
public static boolean Confirm(Context context) {    boolean answer;    AlertDialog dialog = new AlertDialog.Builder(context).create();    dialog.setTitle("Confirmation");    dialog.setMessage("Choose Yes or No");    dialog.setCancelable(false);    dialog.setbutton(DialogInterface.button_POSITIVE,"Yes",new DialogInterface.OnClickListener() {        public voID onClick(DialogInterface dialog,int buttonID) {            answer = true;        }    });    dialog.setbutton(DialogInterface.button_NEGATIVE,"No",int buttonID) {            answer = false;        }    });    dialog.setIcon(androID.R.drawable.ic_dialog_alert);    dialog.show();    return answer;}

注意:重要的是该方法是自包含的,即它不依赖于外部的变量或构造.只要打电话给你,得到你的答案,是真的还是假的.

那么该怎么办?这种简单的返回真假愿望似乎比它应得的要复杂得多.

此外,setbutton方法的格式如下:

dialog.setbutton(int buttonID,String buttonText,Message msg)

但是不清楚如何使用它,meesage发送到哪里,使用哪个处理程序给谁?

解决方法 我在这个论坛上有类似的问题,但是我终于得到了我的答案.
我在那篇文章中的问题是如何创建单独的确认对话框类,他可以通过其他类或活动来访问,所以使用该确认对话框类,我们不需要编写长编码.

这是我的答案.

首先你必须创建DialogHandler.java

import androID.app.Activity;import androID.app.AlertDialog;import androID.content.Context;import androID.content.DialogInterface;import src.app.R;public class DialogHandler {    public Runnable ans_true = null;    public Runnable ans_false = null;    // Dialog. --------------------------------------------------------------    public boolean Confirm(Activity act,String Title,String ConfirmText,String CancelBtn,String OkBtn,Runnable aProcedure,Runnable bProcedure) {        ans_true = aProcedure;        ans_false= bProcedure;        AlertDialog dialog = new AlertDialog.Builder(act).create();        dialog.setTitle(Title);        dialog.setMessage(ConfirmText);        dialog.setCancelable(false);        dialog.setbutton(DialogInterface.button_POSITIVE,OkBtn,new DialogInterface.OnClickListener() {                    public voID onClick(DialogInterface dialog,int buttonID) {                         ans_true.run();                    }                });        dialog.setbutton(DialogInterface.button_NEGATIVE,CancelBtn,int buttonID) {                        ans_false.run();                    }                });        dialog.setIcon(androID.R.drawable.ic_dialog_alert);        dialog.show();        return true;    }}

这就是将其称为另一个类的例子

public class YourActivity extends Activity {    /** Called when the activity is first created. */    @OverrIDe    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.main);        findVIEwByID(R.ID.button1).setonClickListener(myclick);    }    public final button.OnClickListener myclick = new button.OnClickListener() {        @OverrIDe        public voID onClick(VIEw v) {            doclick();        }    };    public voID doclick() {        DialogHandler appdialog = new DialogHandler();        appdialog.Confirm(this,"Message Title","Message content","Cancel","OK",aproc(),bproc());    }    public Runnable aproc(){        return new Runnable() {            public voID run() {                Log.d("Test","This from A proc");            }          };    }    public Runnable bproc(){        return new Runnable() {            public voID run() {                Log.d("Test","This from B proc");            }          };    }}
总结

以上是内存溢出为你收集整理的Android Confirmation对话框返回true或false全部内容,希望文章能够帮你解决Android Confirmation对话框返回true或false所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131501.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存