title: EditText getText() returns empty string
body: <p>I have an activity with a button, when the user clicks on the button, an AlertDialog appear with 2 EditText where you put email and password to login.
  When I try to get the text from the EditText i always get only empty strings.
  The layout login_alert is the layout of the AlertDialog.
  Here the code:</p>
  
  <pre><code>    View view = getLayoutInflater().inflate(R.layout.login_alert, null, false);
      String email = ((EditText) view.findViewById(R.id.emailEditText)).getText().toString();
      String password = ((EditText) view.findViewById(R.id.passwordEditText)).getText().toString();
  
      System.out.println("DEBUG: "+email+", "+password); // Empty strings
  </code></pre>
  
  <p><strong>EDIT:</strong>
  Activity code:</p>
  
  <pre><code>    public class MainActivity extends FragmentActivity {
  
      public static final String mAPP_ID = "...";
      public static final String USER_DB_URL = "...";
  
      AssetsExtracter mTask;
  
      private MainFragment mainFragment;
      private List&lt;User&gt; usersList = new ArrayList&lt;User&gt;();
      private User currentUser = null;
  
      private Button labLoginButton;
      private EditText emailET;
      private EditText passwordET;
  
      private ProgressDialog dialog;
      private View alertView; /* THIS IS THE SOLUTION */
  
      boolean userIsLogged = false;
  
      static {
          IMetaioSDKAndroid.loadNativeLibs();
      }
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
  
          setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  
          setContentView(R.layout.activity_main);
  
          /*View view = getLayoutInflater().inflate(R.layout.login_alert, null, false); BEFORE*/
              alertView = getLayoutInflater().inflate(R.layout.login_alert, null, false);
          emailET = (EditText) view.findViewById(R.id.emailEditText);
          passwordET = (EditText) view.findViewById(R.id.passwordEditText);
  
          labLoginButton = (Button) findViewById(R.id.loginLabButton);
          updateLoginButton();
  
          dialog = new ProgressDialog(this);
          dialog.setMessage("Signin in...");
  
          if (savedInstanceState == null) {
              // Add the fragment on initial activity setup
              mainFragment = new MainFragment();
              getSupportFragmentManager().beginTransaction()
                      .add(android.R.id.content, mainFragment).commit();
          } else {
              // Or set the fragment from restored state info
              mainFragment = (MainFragment) getSupportFragmentManager()
                      .findFragmentById(android.R.id.content);
          }
  
          mTask = new AssetsExtracter();
          mTask.execute(0);
  
      }
  
      /* THIS METHOD IS CALLED BY THE LOGIN BUTTON IN THE MAIN ACTIVITY LAYOUT */
      public void onLabLoginButtonClick(View v) {
          if (userIsLogged) {
              currentUser = null;
              userIsLogged = false;
              updateLoginButton();
              Toast.makeText(this, "Disconnected from Lab", Toast.LENGTH_SHORT)
                      .show();
          } else {
              /*View messageView = getLayoutInflater().inflate(
                      R.layout.login_alert, null, false); BEFORE */
  
              AlertDialog.Builder builder = new AlertDialog.Builder(this);
              builder.setIcon(R.drawable.icon_launcher);
              builder.setTitle(R.string.login_string);
              builder.setView(alertView); /* USING THE GLOBAL VARIABLE */
              builder.setPositiveButton("Sign me", new DialogInterface.OnClickListener() {
                  @Override
                  public void onClick(DialogInterface d, int which) {
                      dialog.show();
  
                      // Download user and return a List of User
                      DownloadFilesAsyncTask task = new DownloadFilesAsyncTask(USER_DB_URL) {
                          @Override
                          protected void onPostExecute(final List&lt;User&gt; result) {
                              usersList = result;
                              loginCheckRoutine(); //HERE I MANAGE THE LOGIN AND GETTING EMPTY STRING
                          }
                      };
                      task.execute();
                  }
              });
              builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  
                  @Override
                  public void onClick(DialogInterface dialog, int which) {
                      // TODO Auto-generated method stub
  
                  }
              });
              builder.create();
              builder.show();
          }
      }
  
      public void updateLoginButton() {
          if (userIsLogged) {
              labLoginButton.setText(R.string.logout_string);
          } else {
              labLoginButton.setText(R.string.login_string);
          }
      }
  
      public void loginCheckRoutine() {
  
  
          String email = emailET.getText().toString();
          String password = passwordET.getText().toString();
  
          System.out.println("DEBUG: " + email + ", " + password); // EMPTY
  
          // controllo nella lista se c'è l'utente coi dati inseriti
          for (int i = 0; i &lt; usersList.size(); i++) {
              if (usersList.get(i).getEmail().equals(email)
                      &amp;&amp; password.equals("admin")) {
                  currentUser = usersList.get(i);
                  userIsLogged = true;
                  updateLoginButton();
                  dialog.dismiss();
                  break;
              }
          }
          if (!userIsLogged) {
              userIsLogged = false;
              updateLoginButton();
              dialog.dismiss();
              Toast.makeText(MainActivity.this, "Login Failed",
                      Toast.LENGTH_SHORT).show();
          }
      }
  
  }
  </code></pre>
  
  <p><strong>PROBLEM SOLVED, SOLUTION:</strong>
  In the onCreate() I inflate the alert_dialog layout in a View variable. I made that View variable global (before onCreate()) and then in onLabLoginButtonClick() I don't inflate the view again, but I use that global instantiated in the onCreate(). hope its clear. thank you all!</p>