2017-01-27 4 views
0

Dies ist mein Code, wo ich habe zwei Textnamen und Telefonnummer bearbeiten, kann mir jemand helfen, Telefonnummer zu validieren, die für meinen Code unten gelten sollte, da ich eine Menge gekommen bin Validierungscodes vorher.Telefonnummer in AlertDialog validieren -Android

public class PersonAddNumberDialog { 
private AlertDialog dialog; 

public PersonAddNumberDialog(final Context context, final ListView toUpdate) { 

    AlertDialog.Builder builder = new AlertDialog.Builder(context); 

    LinearLayout root = new LinearLayout(context); 
    root.setOrientation(LinearLayout.VERTICAL); 

    final EditText textName = new EditText(context); 
    textName.setHint("Name"); 

    final EditText textNumber = new EditText(context); 
    textNumber.setHint("Number"); 
    textNumber.setInputType(InputType.TYPE_CLASS_NUMBER); 

    root.addView(textName); 
    root.addView(textNumber); 

    dialog = builder 
       .setView(root) 
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         String name = textName.getText().toString(), number = textNumber.getText().toString(); 
         if (name != null && !name.equals("")) 
          if (number != null && !number.equals("")) { 
           Person p = new Person(number, name); 
           PersonManager.savePerson(p, context); 
           toUpdate.setAdapter(new PersonAdapter(context, PersonManager.getSavedPersons(context))); 
          } 
        } 
       }) 
       .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int which) { 
         dialog.dismiss(); 
        } 
       }) 
       .create(); 
} 

public void show() { 
    dialog.show(); 
} 

}

+0

Gerade jetzt Sie prüfen nur, ob Nummer 'null' oder' "" '. Was ist die Validierung, die Sie implementieren möchten? Es ist irgendwie unklar, was Ihr Problem ist –

+0

es sollte nur Telefonnummer von 10 Ziffern akzeptieren. – Meghana

+0

Validierung einer Telefonnummer ist keine triviale Aufgabe. Es gibt viele Telefonnummernstandards für jedes Land. Möchten Sie die Telefonnummer eines Landes bestätigen? –

Antwort

0

@Meghana bitte diese versuchen ..

@Override 
     public void onClick (DialogInterface dialog,int which){ 
      String name = textName.getText().toString(); 
      String number = textNumber.getText().toString(); 

      if (name.equalsIgnoreCase("")) { 
       Log.e("Log", "enter name"); 
       Toast.makeText(getApplicationContext(), "enter name", Toast.LENGTH_LONG).show(); 
      } 
      if (number.equalsIgnoreCase("")) { 
       Log.e("Log", "enter number"); 
       Toast.makeText(getApplicationContext(), "enter number", Toast.LENGTH_LONG).show(); 
      } else if (number.length() < 10) { 
       Log.e("Log", "enter number is not valid"); 
       Toast.makeText(getApplicationContext(), "enter number is not valid", Toast.LENGTH_LONG).show(); 
      } else { 
       Person p = new Person(number, name); 
       PersonManager.savePerson(p, context); 
       toUpdate.setAdapter(new PersonAdapter(context, PersonManager.getSavedPersons(context))); 

      } 
     }) 
+0

Vielen Dank, es funktioniert :) – Meghana

+0

@Meghana Ihre Begrüßung und bitte UPVOTE dies .. –

0

Sie < 10 als Bedingung hinzufügen.

private static boolean validatePhoneNumber(String phoneNo) { 
      //validate phone numbers of format "1234567890" 
      if (phoneNo.matches("\\d{10}")) return true; 
      //validating phone number with -, . or spaces 
      else if(phoneNo.matches("\\d{3}[-\\.\\s]\\d{3}[-\\.\\s]\\d{4}")) return true; 
      //validating phone number with extension length from 3 to 5 
      else if(phoneNo.matches("\\d{3}-\\d{3}-\\d{4}\\s(x|(ext))\\d{3,5}")) return true; 
      //validating phone number where area code is in braces() 
      else if(phoneNo.matches("\\(\\d{3}\\)-\\d{3}-\\d{4}")) return true; 
      //return false if nothing matches the input 
      else return false; 

     } 
+0

danke, Ihre Antwort ist zu arbeiten – Meghana

+0

Gern geschehen. –

0

Probieren Sie etwas wie dieses:

if (!Patterns.PHONE.matcher(number).matches() || number.length() < 10){ 
      new AlertDialog.Builder(this) 
          .setTitle("Invalid Phone Number") 
          .setMessage("Please enter valid Phone Number.") 
          .setPositiveButton(android.R.string.yes, null) 
          .create().show(); 
     }else { 
      // valid mobile number action 
     } 
Verwandte Themen