我刚开始在Android中编程,我还在学习。我想检查一年是否在12月和1月使用nextMonth()方法时自动更改,或者我是否应该使用一些if语句更改它。但是,我显示了它的值,而不是我得到一个地址。这是我的代码:
TextView checkMonValue;
MonthDisplayHelper currentMonth = new MonthDisplayHelper(2012, 11);
MonthDisplayHelper nextMon = currentMonth;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkMonValue = (TextView)findViewById(R.id.monthValue);
checkMonValue.setText(String.valueOf(changeOfYear()));
}
public String changeOfYear(){
nextMon.nextMonth();
return nextMon + "" + nextMon.getYear();
}
这就是显示的内容:Android.util.MonthDisplayHelper@44ee34e02013
答案 0 :(得分:1)
nextMon
是您的回报所指示的对象。当你致电nextMonth()
时,你发出了增加月份但没有实际检索任何东西的命令。
而是这样做:
public String changeOfYear(){
nextMon.nextMonth();
return nextMon.getMonth() + " " + nextMon.getYear();
}
请注意,我在那里放了一个只有""
的空格。你甚至可以在退货时看到这个:Android.util.MonthDisplayHelper@44ee34e0 2013
答案 1 :(得分:1)
这种情况正在发生,因为nextMon
是您定义的某种类型MonthDisplayHelper
,并且您没有覆盖toString()
方法。
您可以实现该方法以返回有意义的内容,或者,您可能想要在这一行中连接不同的内容:
return nextMon + "" + nextMon.getYear();
这可能是你想要的,nextMon.getMonth()
或nextMon
上的某种方法。
答案 2 :(得分:1)
您在nextMon
方法的返回值中追加changeOfYear()
。这样,它会将nextMon
的限定名称和地址作为Android.util.MonthDisplayHelper@44ee34e0
附加年份2013
。
请更正以附加nextMon.getMonth()
和nextMon.getYear()
public String changeOfYear(){
nextMon.nextMonth();
return nextMon.getMonth() + "" + nextMon.getYear();
}