-2

Я сделал индивидуальный макет для AlertDialog, в котором есть EditText.Как получить доступ к EditText, помещенному в пользовательский макет, сделанный для AlertDialog?

При нажатии кнопки я хочу проверить, пуст или заполнен этот текст, чтобы я мог продолжить дальнейшие операции.

Вот XML-код для пользовательского макета для AlertDialog:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_marginLeft="16dp" 
       android:layout_marginRight="16dp" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent"> 

    <android.support.design.widget.TextInputLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="8dp" 
     android:layout_marginBottom="8dp" 
     android:layout_marginLeft="16dp" 
     android:layout_marginRight="16dp"> 
     <EditText 
      android:id="@+id/id" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:hint="type here"/> 
    </android.support.design.widget.TextInputLayout> 

</LinearLayout> 

Вот что я делаю с Java кодом:

final AlertDialog.Builder builder = new AlertDialog.Builder(SignUpActivity.this); 
      builder.setTitle("Choose a unique username"); 
      builder.setView(R.layout.choose_unique_name_dialog); 
      builder.setPositiveButton("Continue", new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialogInterface, int i) { 
        if (uniqueUserName.getText().toString().isEmpty()) { 
         Snackbar snackbar = Snackbar 
           .make(coordinatorLayout, "Please choose a unique username", Snackbar.LENGTH_SHORT); 
         snackbar.show(); 
        } else { 
         signingUpMethod(); 
        } 
       } 
      }); 
      AlertDialog dialog = builder.create(); 
      dialog.show(); 

Итак, я хочу знать как открыть EditText от моего MainActivity?

Пожалуйста, дайте мне знать.

ответ

1

Накачайте макет вы настройки для вашего alertDialog как этот

LayoutInflater inflater = this.getLayoutInflater(); 
View alertDialogView = inflater.inflate(R.layout.your_layout,null); 

Access ваш EditText как этот

EditText editText = (EditText) alertDialog.findViewById(R.id.id); 
+0

это сработало для меня, но проблема в том, что поведение, которое должно отображаться только тогда, когда edittext пуст, также отображается, когда в нем есть текст. Почему так? –

+0

Вы хотите сказать, что хотите показать это alertDialog только при некоторых условиях? – SripadRaj

+0

, пожалуйста, просмотрите отредактированный вопрос ... Я делаю проверку после нажатия на кнопку clickbutton. если edittext пуст, отобразится закусочная, и если это не так, будет выполнен метод, но в обоих условиях отображается закутка. –

1

Попробуйте этот код,

сделать это как publicstatic метод и вы можете получить доступ от любой другой деятельности

Магазин edittext значение в некотором статические переменная и доступ из другого класса.

+0

Вам понравилось? @Hammad Nasir –

+0

Я не пробовал. –

+0

Чем вы должны попробовать. Это простой способ получить доступ к значению edittext. –