0

を起動するとすぐにダイアログ ボックスが表示されますMainActivity。テーブル番号とカバー番号の 2 つのパラメータを入力するようにユーザーに促します。次に確認し、これらのパラメーターを使用して 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();
    }
4

2 に答える 2

1

これを試して

 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 ;
}
于 2013-05-09T13:13:41.977 に答える
0
String tableNum="",coverNum="";
if(tableNum.gettext.toString() == "" && coverNum.gettext.toString() =="")
{
    Toast.makeText(context, "Please Enter General Comments", 1).show();
}
else 
{
    dialoge.show();
}
于 2013-05-09T13:28:04.280 に答える