setText()在Android中显示地址而不是值

时间:2012-11-27 21:41:12

标签: android settext

我刚开始在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

3 个答案:

答案 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();
 }