2017-08-07 16 views
-1

Androidスタジオの学習を始めたばかりで、これは初めてのプロジェクト(Hello Worldアプリケーション)です。このプロジェクトは、時刻に応じて挨拶を返さなければならないアプリを作成することです。私が直面している問題は、名前を入力すると適切な挨拶の代わりに「null(名前)」が表示されるということです。 これがなぜ起こっているのか理解できません。私はちょうど正しい方向にヒントやナッジが必要です。ここで挨拶時刻(Android)

は、エミュレータ上での結果である:ここで(https://prnt.sc/g5lc7e

がボタンを押すイベントのために私のコードです:

@Override 
    public void onClick(View v) { 

     // get a reference to the TextView on the UI 
     TextView textMessage = (TextView) findViewById(R.id.textMessage); 

     //get a reference to the EditText so that we can read in the value typed 
     // by the user 
     EditText editFriendName = (EditText) findViewById(R.id.editFriendName); 

     // get the name of the friend typed in by the user in the EditText field 
     String friendName = editFriendName.getText().toString(); 

     //Get the time of day 
     Date date = new Date(); 
     Calendar cal = Calendar.getInstance(); 
     cal.setTime(date); 
     int hour = cal.get(Calendar.HOUR_OF_DAY); 

     //Set greeting 
     String greeting = null; 
     if(hour>=6 && hour<12){ 
      greeting = "Good Morning"; 
     } else if(hour>= 12 && hour < 17){ 
      greeting = "Good Afternoon"; 
     } else if(hour >= 17 && hour < 21){ 
      greeting = "Good Evening"; 
     } else if(hour >= 21 && hour < 24){ 
      greeting = "Good Night"; 
     } 

     //Change string displayed by TextView 
     switch (v.getId()) { 

     case R.id.greetButton: 

     //set the string being displayed by the TextView to the greeting 
     //message for the friend 
     textMessage.setText(greeting + " " + friendName + "!"); 

     break; 

     default: 
      break; 
     } 

    } 
+2

時間<6のときに挨拶を何に設定しますか? – user3486184

+0

as @ user3486184は、他のすべての時間に 'else'文を追加するか、' else if(hour <6) 'を追加すると言っています。また、[Calendar.getInstance()](https://developer.android.com/reference/java/util/Calendar.html#getInstance())を呼び出すと、 'cal.setTime(date)'は必要ありません。カレンダーを現在の時刻に初期化します。 – ArtiomLK

答えて

1

あなたはこのように試すことができ、あなたは以下の6 AMを逃しました。

if(hour>= 12 && hour < 17){ 
    greeting = "Good Afternoon"; 
} else if(hour >= 17 && hour < 21){ 
    greeting = "Good Evening"; 
} else if(hour >= 21 && hour < 24){ 
    greeting = "Good Night"; 
} else { 
    greeting = "Good Morning"; 
} 
+0

それは働いた!ありがとうalot 私は条件が不足していたことに気付かなかった。 –

関連する問題