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