簡體   English   中英

參數不正確時將關閉“警告”對話框

[英]Alert Dialog box being dismissed when parameters are not correct

MainActivity啟動后,我將顯示一個對話框。 它提示用戶輸入兩個參數,一個表號和一個封面號。 然后,它們進行確認,並使用這些參數來創建Order對象。

但是,我遇到的問題是,無論他們是否輸入參數,單擊確定按鈕時都將取消該框。 我希望該框保持顯示狀態,並顯示概述該錯誤的Toast消息。

以下是我的代碼,該代碼有效,但是單擊該按鈕時,該框消失,並且也顯示了吐司。

非常感謝。

public Dialog createDialog(){

    AlertDialog.Builder builder = new AlertDialog.Builder(SectionsActivity.this);

    View v = getLayoutInflater().inflate(R.layout.order_dialog, null);
    builder.setView(v);

    tableNum = (EditText)v.findViewById(R.id.numberEntry);
    coverNum = (EditText)v.findViewById(R.id.coversEntry);

    builder.setMessage("Order Information");
    builder.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {

            if(tableNum.getText().length() != 0 && coverNum.length() != 0){
            //Create order object in here
            table = Integer.parseInt(tableNum.getText().toString());
            covers = Integer.parseInt(coverNum.getText().toString());
            Order.getInstance().setTableNumber(table);
            Order.getInstance().setCoverNumber(covers);
            created = true;
            }else{
                Toast.makeText(getApplicationContext(), "Must enter a table and cover number", Toast.LENGTH_SHORT).show();
            }
        }
    });

    return builder.create();
}

編輯:

if(!Order.getInstance().getCreated()){
    Dialog d = createDialog();
    d.show();
    }

嘗試這個

 AlertDialog alertDialog = builder.create();

 builder.setOnShowListener(new DialogInterface.OnShowListener() {

                @Override
                public void onShow(DialogInterface dialog) {
                     Button b = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
                     b.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            String strComments = youredittext.getText().toString().trim();   // get your Textbox value here
                            if(strComments==null || strComments.length()==0)
                            {
                                Toast.makeText(context, "Please Enter General Comments", 1).show();
                            }
                            else
                            {
                                alertDialog.dismiss();
                                // do stuff if success

                            }
                        }
                    });

                }
            });

我們正在做的是,只是覆蓋AlertDialog Positive按鈕,以避免在不將值輸入字段的情況下關閉按鈕

編輯:

public Dialog createDialog(){

    AlertDialog.Builder builder = new AlertDialog.Builder(SectionsActivity.this);

    View v = getLayoutInflater().inflate(R.layout.order_dialog, null);
    builder.setView(v);

    tableNum = (EditText)v.findViewById(R.id.numberEntry);
    coverNum = (EditText)v.findViewById(R.id.coversEntry);

    builder.setMessage("Order Information");
    builder.setPositiveButton("Confirm", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int id) {

            if(tableNum.getText().length() != 0 && coverNum.length() != 0){
            //Create order object in here
            table = Integer.parseInt(tableNum.getText().toString());
            covers = Integer.parseInt(coverNum.getText().toString());
            Order.getInstance().setTableNumber(table);
            Order.getInstance().setCoverNumber(covers);
            created = true;
            }else{
                Toast.makeText(getApplicationContext(), "Must enter a table and cover number", Toast.LENGTH_SHORT).show();
            }
        }
    });

 AlertDialog alertDialog = builder.create();

builder.setOnShowListener(new DialogInterface.OnShowListener() {

                @Override
                public void onShow(DialogInterface dialog) {
                     Button b = alertDialog.getButton(AlertDialog.BUTTON_POSITIVE);
                     b.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            String strComments = youredittext.getText().toString().trim();   // get your Textbox value here
                            if(strComments==null || strComments.length()==0)
                            {
                                Toast.makeText(context, "Please Enter General Comments", 1).show();
                            }
                            else
                            {
                                alertDialog.dismiss();
                                // do stuff if success

                            }
                        }
                    });

                }
            });

    return alertDialog ;
}
String tableNum="",coverNum="";
if(tableNum.gettext.toString() == "" && coverNum.gettext.toString() =="")
{
    Toast.makeText(context, "Please Enter General Comments", 1).show();
}
else 
{
    dialoge.show();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM