2012-03-17 3 views
1

내 onCreate 메서드에는 다음 코드 행이 있습니다. 나는이 CalendarView에서 현재 선택한 날짜를 얻을) (이 calendar.getDate을 수행하여 String으로하지만, 방법 메신저로 변환하기 위해 노력하고있어CalendarView의 인스턴스 만들기

CalendarView calendar = (CalendarView) findViewById(R.id.cal); 

; 오류가 발생했습니다.

답변

1

당신이 당신의 클래스 범위 (예를 들어, 방법, 서브 클래스 등) 모두에 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

1

실제로 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. 
} 
+0

나는이 더 저를 혼동했다 두려워, 그래서 난이에서 현재 선택한 날짜를 얻을 것입니다 내가 어떻게 내 CalendarView에서 일정라는 개체를 만들었습니다? 설명서에 나와있는 방법을 호출 할 수 없습니다. – nexus490

+0

1. 새 개체는 화면에 표시된 것과 동일한 개체가 아니므로 만들지 마십시오. 2. 왜 문서의 메소드를 사용할 수 없습니까? – MByD

+0

CalendarView에 나열된 메소드에는 getDate()라는 호출이 있는데,이 호출은 내가 호출하고 문자열로 변환하지만 캘린더를 수행 할 때 사용합니다. 그 방법은 나열된 것 중 하나가 아닙니다. – nexus490

관련 문제