2016-08-25 22 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()メソッドでは、あなたが唯一のテスト・ケース.FOR値 – Vickyexpert

+0

は大丈夫得ることができ、ボタンのクリックイベントにそれを記述する必要があります「私はsouravだ」( 'username.setTextを追加); ''ユーザーの前に ' –

+0

[編集テキストフィールドの値を取得]の可能な複製(http://stackoverflow.com/questions/4531396/get-value-of-a-edit-text-field) – Veer3383

答えて

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

は、ボタンのようなリスナーにこのラインを入れbloginがクリックされたときは、ユーザーのフィールドを取得する必要があり、コードがButton

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

     } 
}); 
+0

ありがとうございます。しかし、単純なテキストフィールドをイベントの下で登録する必要があるのはなぜですか。 –

+0

アクティビティのライフサイクルを理解する必要があります。あなたのアクティビティは、あなたのアプリが起動された瞬間に作成されます。あなたのアクティビティが既に開始されているときに、後の段階でテキストを入力するので、編集テキストの状態の変化をリスンするインターフェイスが必要なので、ボタンクリックリスナーに追加する必要があります。これは役に立ちます。 – Veer3383

+0

ありがとう@ Veer3383 –

3

をクリックします。

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

をbloginのonClickListenerの内側に記述する必要があります

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を使用して、あなたはのonCreate上のEditText()の値を評価している

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を評価するだけです。 ボタンclickListner();

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

      } 
     }); 
関連する問題