0

I have just started to program in Android and I am still learning. I wanted to check if a year changes automatically when a nextMonth() method is used in case of December and January or whether I should change it with a few if statements. However, I canot display the value of that, instead I get an address. Here is my code:

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

And that is what get's displayed: Android.util.MonthDisplayHelper@44ee34e02013

4

3 回答 3

1

nextMon正如您的回报所表明的那样,是一个对象。当您打电话时,nextMonth()您发出的命令是增加月份,但实际上并未检索任何内容。

而是这样做:

public String changeOfYear(){
    nextMon.nextMonth();
    return nextMon.getMonth() + " " + nextMon.getYear();
}

请注意,我在那里放了一个空间,你只有"". 您甚至可以在返回时看到:Android.util.MonthDisplayHelper@44ee34e02013

于 2012-11-27T21:45:27.737 回答
1

发生这种情况是因为nextMon您定义了某种类型MonthDisplayHelper,并且您没有覆盖该toString()方法。

您可以实现该方法以返回一些有意义的东西,或者,也许您打算在这一行中连接一些不同的东西:

return nextMon + "" + nextMon.getYear();

可能像这样的东西就是你想要的,nextMon.getMonth()或者是nextMon.

于 2012-11-27T21:45:30.867 回答
1

您将nextMon自己附加到方法的返回值中changeOfYear()。这样,它返回的限定名称和地址nextMonasAndroid.util.MonthDisplayHelper@44ee34e0附加 year as 2013

请更正以附加nextMon.getMonth()nextMon.getYear()

 public String changeOfYear(){
   nextMon.nextMonth();
   return nextMon.getMonth() + "" + nextMon.getYear();
 }
于 2012-11-27T21:45:44.310 回答