2016-08-25 70 views
1

我正在做一個簡單的登錄應用程序,我需要將用戶ID傳遞到後續屏幕。但是,我沒有獲得用戶名字段的變量。編輯文本getText()。toString()返回空白

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

好。對於測試用例加上'username.setText(「我sourav」 );''用戶'之前' –

+0

[獲取編輯文本字段的值]的可能副本(http://stackoverflow.com/questions/4531396/get-value-of-a-edit-text-field) – Veer3383

回答

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

,就把這行到像一個按鈕收聽點擊

+0

謝謝。但爲什麼一個簡單的文本字段需要在事件下注冊。 –

+0

您需要了解活動的生命週期,您的活動是在您的應用程序啓動時創建的。當你的活動已經開始時,你在後面階段輸入文本,所以你需要一個接口來監聽edittext狀態的變化,因此你需要將它添加到一個按鈕點擊監聽器中,我希望這可以幫助 – Veer3383

+0

Thanks @ 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沒有文字時,返回""。你必須爲你的blogin按鈕創建onClickListener事件和用戶輸入自己的用戶名後使用username的TextView的gettext和再點擊按鈕

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(); 

      } 
     });