2013-01-19 23 views
6

İşte bir diyalog için benim kodudur addTextChangedListener (editext) bazı condion olumlu düğmesini devre dışı, ben eğer 5'ten düzenlemek-metinde metin boyutu ve etkinlestirdiginizde pozitif düğmesini devre dışı bırakmak istediğiniz boyutu < = 5Android

böyle
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

bu bağlantıyı bakın http://stackoverflow.com/questions/8238952/how-to-disable-enable-dialog-negative-possitive-buttons –

+0

i zaten bu bağlantıyı görmüştüm, iletişim kutusunun sadece bir kez devre dışı/etkin kıldığını oluşturuldu, ancak her seferinde kullanıcının bir karaktere girmesini istediğim edittext – Androider

+0

Bu şekilde asla yapmam. Düğmeyle özel iletişim kutusunu kullanarak tih'leri yaptım ve onaylamayı kontrol ettim. bu şekilde yapabilirsin. –

cevap

16

deneyin şey:

@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); 
    } 
} 

dialog geçerli:

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

iletişim kutusunu çalıştıramazsınız, – Androider

+4

çalıştım ama dialogEdittext.addTextChangedListener ..... 'ı aşağı kaydırmam gerekiyordu .... dialog.show(); – Androider

+0

@SyedZahidAli Gerekliydi çünkü 'dialog' değişkeni oluşturulmadan önce 'TextWatcher' ifadesini kullandıysanız göremediniz. – Luksprog