2013-01-19 9 views
6

Hier ist mein Code für einen Dialog ist, möchte ich positive Taste deaktivieren, wenn die Textgröße in edit-Text in mehr als 5 und es ermöglichen, wenn Größe < = 5Android deaktivieren positive Taste auf einige condion in addTextChangedListener (EditExt)

private void myDialog(String title) { 
      AlertDialog.Builder builder = new AlertDialog.Builder(context); 


      // Get the layout inflater 
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 

      View dialogView = inflater.inflate(R.layout.new_dialog, null); 

      // Inflate and set the layout for the dialog 
      // Pass null as the parent view because its going in the dialog layout 
      builder.setView(dialogView); 

      final EditText dialogEdittext = (EditText) dialogView.findViewById(R.id.dialog_editText); 
      final TextView dialogMessage = (TextView) dialogView.findViewById(R.id.dialog_limit); 

      dialogEdittext.addTextChangedListener(new TextWatcher() { 

       @Override 
       public void onTextChanged(CharSequence s, int start, int before, int count) { 
       } 

       @Override 
       public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
       } 

       @Override 
       public void afterTextChanged(Editable s) { 

        // if text length is greater than 5 disable positive button 
           // else enable 
       } 
      }); 

      builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 

      }); 

      builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int id) { 
       } 
      }); 

      final Dialog dialog = builder.create(); 
      dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_VISIBLE); 
      dialog.show(); 

     } 
+0

verweisen Sie diesen Link http://stackoverflow.com/questions/8238952/how-to-disable-enable-dialog-negative-possitive-buttons –

+0

Ich habe bereits diesen Link gesehen, wird es nur einmal aktivieren/deaktivieren Button, wenn Dialog ist erstellt, aber ich möchte dies jedes Mal, wenn Benutzer geben Sie ein Zeichen in Edittext – Androider

+0

ich nie auf diese Weise. Ich habe den benutzerdefinierten Dialog mit der Schaltfläche verwendet und dabei die Validierung überprüft. Sie können auf diese Weise tun. versuchen Sie es –

Antwort

16

versuchen, etwas wie folgt aus:

@Override 
public void afterTextChanged(Editable s) { 
    if (s.length() > 5) { 
     dialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(false); 
    } else { 
     dialog.getButton(Dialog.BUTTON_POSITIVE).setEnabled(true); 
    } 
} 

wo dialog ist:

final AlertDialog dialog = builder.create(); 
+0

Dialog kann nicht aufgelöst werden – Androider

+4

gearbeitet, aber ich musste dialogEdittext.addTextChangedListener ..... unter .... dialog.show(); – Androider

+0

@SyedZahidAli Das war erforderlich, weil Sie den TextWatcher deklariert haben, bevor die Variable 'dialog' erstellt wurde, damit sie nicht angezeigt wird. – Luksprog

Verwandte Themen