2016-06-23 2 views
1

ich arbeite an Alarmdialog mit einigen Textfeldern, in denen die Textfelder überprüft werden mussten und wenn sie nur dann korrekt sind, muss die Popup-Nachricht verschwunden sein Das Problem Wenn der Benutzer auf OK klickt (mit leeren Werten), verschwand die Popup-Nachricht. Vielen Dank im Voraus ...Wie validiere ich Textfelder in Alert Dialogfeld in Android

final AlertDialog.Builder builder = new AlertDialog.Builder(KmsActivity.this); 
builder.setTitle("Enter OrderId,BillNo"); 
builder.setCancelable(false); 
final EditText input1 = new EditText(KmsActivity.this); 
final EditText input2 = new EditText(KmsActivity.this); 
input1.setHint("Enter OrderId"); 
input2.setHint("Enter BillNo"); 
LinearLayout linearLayout = new LinearLayout(KmsActivity.this); 
linearLayout.setOrientation(LinearLayout.VERTICAL); 
linearLayout.addView(input1); 
linearLayout.addView(input2); 
builder.setView(linearLayout); 
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() { 
    @Override 
    public void onClick(DialogInterface popupDialog, int which) { 
     String orderId = input1.getText().toString(); 
     String billNo = input2.getText().toString(); 
     Log.d(TAG_NAME, "order id:" + orderId); 
     Log.d(TAG_NAME, "bill no" + billNo); 
     if (orderId.length()<=0) { 
      Toast.makeText(KmsActivity.this, "Please enter Order ID", Toast.LENGTH_LONG).show(); 
     } else if (billNo.length()<=0) { 
      Toast.makeText(KmsActivity.this, "Please enter Bill No", Toast.LENGTH_LONG).show(); 
     } else { 
      tripObjects.get(0).setOrderId(orderId); 
      tripObjects.get(0).setBillNo(billNo); 
      tripObjects.get(0).saveInBackground(); 
      Toast.makeText(KmsActivity.this, "values uploaded", Toast.LENGTH_LONG).show(); 
      popupDialog.cancel(); 
     } 
    } 
}); 
builder.show(); 
+0

Wenn der Dialog automatisch auf die Schaltfläche entlässt drücken, dann können Sie einen benutzerdefinierten Dialog schreiben und die Klick-Listener-Methode außer Kraft setzen (ohne Baumeister). –

+0

Hi Wax, können Sie einen Referenzlink dafür geben –

+0

Mögliche Duplikate von [Alert Dialog verschwand, wenn der Benutzer auf die Seite klickt] (http://stackoverflow.com/questions/37984723/alert-dialog-was-disappearing-when -user-clicks-out-side) –

Antwort

0

Ersteinfuhr Klasse -import android.support.v7.app.AlertDialog;

diese dann versuchen -

final EditText input1 = new EditText(MainActivity.this); 
     final EditText input2 = new EditText(MainActivity.this); 
     input1.setHint("Enter name1"); 
     input2.setHint("Enter Name2"); 
     LinearLayout linearLayout = new LinearLayout(this); 
     linearLayout.setOrientation(LinearLayout.VERTICAL); 
     linearLayout.addView(input1); 
     linearLayout.addView(input2); 

     final AlertDialog builder = new AlertDialog.Builder(MainActivity.this) 
       .setTitle("Sign In Failed") 
       .setCancelable(false) 
       .setMessage("Invalid username or password").setView(linearLayout).setPositiveButton("OK", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
        } 
       }).create(); 
     builder.show(); 
     ((AlertDialog)builder).getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       if (input1.length() <= 0) { 
        Toast.makeText(MainActivity.this, "Please Enter Name", Toast.LENGTH_SHORT).show(); 

       } else { 
        Toast.makeText(MainActivity.this, "OK", Toast.LENGTH_SHORT).show(); 
        builder.dismiss(); 
       } 
      } 
     }); 
+0

@Ram, Versuchen Sie oben genannten Code. Es funktioniert perfekt –

+0

Hallo Onkar, ich habe Kopie eingefügt, Code, sagt inkonvertible Typen; kann 'android, support.v7.app.AlertDialog.Builder' nicht in '/android.support.v7.app.AlertDialog' umwandeln. –

+0

Bitte sehen Sie sich meinen Code an. Es ist nicht "AlertDialog.Builder" nur "AlertDialog" –

1

Sie entweder Ihren Text Validierungsmethode auf positive Klick-Taste mit einer Bedingung mit einem Toast Nachricht aufrufen können. oder Sie können addTextChangeListener zu Ihrer Textansicht hinzufügen, in der Sie Text eingeben, um die Validierungsmethode jedes Mal aufzurufen, wenn Sie Text ändern.

+0

Hallo Ankit, ich habe nicht verstanden, was Sie gesagt haben, bitte können Sie mir ein richtiges Beispiel geben –

Verwandte Themen