0

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

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()このようにして、の修飾名とアドレスに年nextMonAndroid.util.MonthDisplayHelper@44ee34e0付けて返し2013ます。

nextMon.getMonth()追加して修正してくださいnextMon.getYear()

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