私のonCreateメソッドには、次のコード行があります。
CalendarView calendar = (CalendarView) findViewById(R.id.cal);
このCalendarViewから現在選択されている日付を取得して文字列に変換しようとしていますが、メソッドimではこのcalendar.getDate();を実行しています。エラーが発生しています。
私のonCreateメソッドには、次のコード行があります。
CalendarView calendar = (CalendarView) findViewById(R.id.cal);
このCalendarViewから現在選択されている日付を取得して文字列に変換しようとしていますが、メソッドimではこのcalendar.getDate();を実行しています。エラーが発生しています。
実際、XMLで定義すると、Dalvikによってインスタンス化されます。その必要はありません。必要なのは、インスタンスへの参照を取得することです。これは次のように行われます。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); // assuming your layout XML is called main
CalenderView calendar = (CalenderView) findViewById(R.id.theCalendarId); // the ID you gave in the XML
// Now you can refer to the calendar.
}
すべてのクラス スコープ (メソッド、サブクラスなど) で CalendarView オブジェクトにアクセスし、そのプロパティ、メソッドなどを使用する場合は、onCreate メソッドの前に参照を作成します。
CalendarView calendar;
次に、レイアウトにアクセスして onCreate メソッドで初期化します。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.mylayout); //mylayout refers to your layout that you want to display
calendar = (CalendarView) findViewById(R.id.calendarid); //Refers to CalendarView that you declared in your layout.
}
名前のようなコンテキストについては、アクティビティまたはアプリケーション自体に関する情報を保持します。詳細については、これを確認してください。
http://developer.android.com/reference/android/content/Context.html