2016-08-25 2 views
1

Я делаю простое приложение для входа, где мне нужно передать идентификатор пользователя на последующие экраны. Но я не получаю поле имени пользователя для переменной.Редактировать текст getText(). ToString() возвращает blank

public static String user; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    EditText username = (EditText)findViewById(R.id.etUserName); 
    EditText password = (EditText)findViewById(R.id.etPwd); 
    Button blogin = (Button)findViewById(R.id.bLogin); 


    user = username.getText().toString();// Here user variable is blank!!!!!!!!!!!!!!! 

Просьба помочь !!!

+0

Он всегда будет пустым в OnCreate() метод, вы должны записать его в на события нажатия кнопки, то только вы можете получить значение – Vickyexpert

+0

ладно .for теста добавить 'username.setText («Я Sourav»); 'before' user' –

+0

Возможный дубликат поля [Получить значение поля редактирования] (http://stackoverflow.com/questions/4531396/get-value-of-a-edit-text-field) – Veer3383

ответ

1
user = username.getText().toString(); 

поставить эту строку в качестве слушателя, как кнопки мыши

+0

Спасибо. Но почему простое текстовое поле должно быть зарегистрировано в событии. –

+0

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

+0

Спасибо @ Veer3383 –

3

, что код должен быть написан внутри onClickListener из blogin Button

blogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      user = username.getText().toString(); 

     } 
}); 
1

Вы должны получить поле пользователя при blogin нажатии:

blogin.setOnClickListener(new View.OnClickListener() 
    { 
     public void onClick(View v) 
     { 
      user = username.getText().toString(); 
     } 
}); 
1

Добавить этот код на onCreate

public static String user; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    EditText username = (EditText)findViewById(R.id.etUserName); 
    EditText password = (EditText)findViewById(R.id.etPwd); 
    Button blogin = (Button)findViewById(R.id.bLogin); 


// On the click of the button get username string. 
    blogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       user = username.getText().toString(); 
      } 
     }); 
1

Вы получите текст поля имени пользователя немедленно. и я думаю, что текст не был установлен в поданной ранее. когда у editText нет текста, возвращается "". Вы должны создать onClickListener событие для кнопки blogin и использовать GetText из username TextView после пользователь ввел свое имя пользователя, а затем нажмите на кнопку

public static String user; 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    EditText username = (EditText)findViewById(R.id.etUserName); 
    EditText password = (EditText)findViewById(R.id.etPwd); 
    Button blogin = (Button)findViewById(R.id.bLogin); 

    blogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if(username.getText().toString().equals(""){ 
       Toast.makeText(v.getContext, "enter your username", Toast.LENGTH_SHORT).show(); 
      } 
      else 
       user = username.getText().toString(); 
     } 
    }); 
} 
1

Вы оцениваете значение EditText на OnCreate(); который будет возвращать пустой всегда, так что просто оцените editText, когда вам это нужно. как вы хотите на кнопку clickListner();

 blogin.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) 
      { 
       user = username.getText().toString(); 

      } 
     }); 
Смежные вопросы