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