Java 字符串值未显示在output.setText中
我试图在我的应用程序中显示日期名称和日期,定义为“text”的文本显示精细,整数值也显示精细,但它不会显示文本变量,这是我的:Java 字符串值未显示在output.setText中,java,android,Java,Android,我试图在我的应用程序中显示日期名称和日期,定义为“text”的文本显示精细,整数值也显示精细,但它不会显示文本变量,这是我的: Calendar now = Calendar.getInstance(); TextView output3 = (TextView) findViewById(R.id.output3); int dayno = now.get(Calendar.DAY_OF_WEEK); String dayName = new String();// also tried S
Calendar now = Calendar.getInstance();
TextView output3 = (TextView) findViewById(R.id.output3);
int dayno = now.get(Calendar.DAY_OF_WEEK);
String dayName = new String();// also tried String dayName = ""; with the same results
if (dayno == 1) dayName = "Sun";
if (dayno == 1) dayName = "Mon";
if (dayno == 1) dayName = "Tue";
if (dayno == 1) dayName = "Wed";
if (dayno == 1) dayName = "Thu";
if (dayno == 1) dayName = "Fri";
if (dayno == 1) dayName = "Sat";
我也这样试过:
if (dayno == 1) {dayName = "Sun";}
if (dayno == 1) {dayName = "Mon";}
if (dayno == 1) {dayName = "Tue";}
if (dayno == 1) {dayName = "Wed";}
if (dayno == 1) {dayName = "Thu";}
if (dayno == 1) {dayName = "Fri";}
if (dayno == 1) {dayName = "Sat";}
output3.setText(hour + ":" + minute + ":" + second + " Week " + weekno + ", " + dayName + ", " + yearno);
int dayno = now.get(Calendar.DAY_OF_WEEK);
String dayName = new String();
switch(dayno) {
case 1: dayName = "Sun"; break;
case 2: dayName = "Mon"; break;
case 3: dayName = "Tue"; break;
case 4: dayName = "Wed"; break;
case 5: dayName = "Thu"; break;
case 6: dayName = "Fri"; break;
case 7: dayName = "Sat"; break;
default: dayName = "dayno is not [1, 7]"; break;
}
这是我得到的结果(中间文本字段有错误)
我想不出这里有什么问题,如果您能提供任何帮助,我们将不胜感激。您所有的if子句都将检查
dayno
是否为1
。将它们更改为正确的值或使用switch语句,应该可以正常工作。其switch语句如下所示:
在if条件下,您的天数相同。正确地写下你的条件。改用
开关。你可以顺便使用这个类,这样可以避免重新发明轮子
例子:
,但让我们回到你的问题
代码里有这个
if (dayno == 1) dayName = "Sun";
if (dayno == 1) dayName = "Mon";
但是如果dayno不是1呢??
然后,dayName为空。。。您有一个复制/粘贴错误
你的意思是肯定的:
if (dayno == 1) {
dayName = "Sun"
} else if (dayno == 2) {
dayName = "Mon";
}...
等等等等,莱昂是对的。你想要这样的东西:
if (dayno == 1) {dayName = "Sun";}
if (dayno == 1) {dayName = "Mon";}
if (dayno == 1) {dayName = "Tue";}
if (dayno == 1) {dayName = "Wed";}
if (dayno == 1) {dayName = "Thu";}
if (dayno == 1) {dayName = "Fri";}
if (dayno == 1) {dayName = "Sat";}
output3.setText(hour + ":" + minute + ":" + second + " Week " + weekno + ", " + dayName + ", " + yearno);
int dayno = now.get(Calendar.DAY_OF_WEEK);
String dayName = new String();
switch(dayno) {
case 1: dayName = "Sun"; break;
case 2: dayName = "Mon"; break;
case 3: dayName = "Tue"; break;
case 4: dayName = "Wed"; break;
case 5: dayName = "Thu"; break;
case 6: dayName = "Fri"; break;
case 7: dayName = "Sat"; break;
default: dayName = "dayno is not [1, 7]"; break;
}
假设星期天是1…不要使用开关或许多if语句,请使用
我相信你的格式是这样的
hh:mm:ss Week w, EEE, yyyy
使用开关执行此操作
Calendar now = Calendar.getInstance();
String dayName;
TextView output3 = (TextView) findViewById(R.id.output3);
int dayno = now.get(Calendar.DAY_OF_WEEK);
switch(dayno){
case 1: dayName = "Sunday"; break;
case 2: dayName = "Monday"; break;
case 3: dayName = "Tuesday"; break;
case 4: dayName = "Wednesday"; break;
case 5: dayName = "Thursday"; break;
case 6: dayName = "Friday"; break;
case 7: dayName = "Saturday"; break;
}
请按以下方式更改您的代码:
Calendar now = Calendar.getInstance();
TextView output3 = (TextView) findViewById(R.id.output3);
int dayno = now.get(Calendar.DAY_OF_WEEK);
String dayName = new String();// also tried String dayName = ""; with the same results
if (dayno == 1) dayName = "Sun";
if (dayno == 2) dayName = "Mon";
if (dayno == 3) dayName = "Tue";
if (dayno == 4) dayName = "Wed";
if (dayno == 5) dayName = "Thu";
if (dayno == 6) dayName = "Fri";
if (dayno == 7) dayName = "Sat";
这里的教训是,不要将所有代码都写在一行不连贯的代码上,这样您就可以更容易地看到失败的原因(问题已由so的另一个成员编辑,以使其连贯)。现在,我已经编辑了您的代码,使其可读,只需看看那些if语句。投票以打字错误结束。您可以用以下内容替换所有内容:String dayName=new SimpleDateFormat(“EEE”).format(new Date())
。是的,对不起,伙计们,这是我代码中的一个复制粘贴错误,我在过去12个小时里一直在开发这个应用程序(不是那个问题,tho lol),谢谢大家的建议,simpleDateFormat看起来简单多了。哦,我有一个坏习惯,当我的类超过1000行时,我会使用“单行非相干编码”,这正是发生错误时我遇到麻烦的原因,因为很难捕捉到像这样的简单错误
Calendar now = Calendar.getInstance();
TextView output3 = (TextView) findViewById(R.id.output3);
int dayno = now.get(Calendar.DAY_OF_WEEK);
String dayName = new String();// also tried String dayName = ""; with the same results
if (dayno == 1) dayName = "Sun";
if (dayno == 2) dayName = "Mon";
if (dayno == 3) dayName = "Tue";
if (dayno == 4) dayName = "Wed";
if (dayno == 5) dayName = "Thu";
if (dayno == 6) dayName = "Fri";
if (dayno == 7) dayName = "Sat";