2012-10-19 2 views
3

는 다음과 같은 XML이 :xml의 레이아웃에 내 사용자 정의 뷰를 추가하는 방법은 무엇입니까?

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <com.ulnda.calendarapplication.MyCalendarView 
     android:id="@+id/calendarView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</LinearLayout> 

MyCalendarView :

public class MyCalendarView extends CalendarView { 

    public MyCalendarView(Context context) { 
     super(context); 
    } 

    @Override 
    public void setOnClickListener(OnClickListener listener) { 
//  View v; 
//  v.setOn 

    } 

    @Override 
    public boolean performClick() { 
     Log.e("event", "perform_click"); 
     return true; 
    } 
} 

모두 훌륭하지만 나는 다음과 같은 메시지를 가지고 있습니다이 응용 프로그램을 실행하기 위해 노력하고있어 때

10-19 12:59:30.037: E/AndroidRuntime(30968): FATAL EXCEPTION: main 
10-19 12:59:30.037: E/AndroidRuntime(30968): android.view.InflateException: Binary XML file line #7: Error inflating class com.ulnda.calendarapplication.MyCalendarView 

어떻게 해결할 수 있습니까?

+0

전체 스택 트레이 – njzk2

+0

(충분하지 않은 생성자) – njzk2

+0

정확하게 이름을 쓰셨습니까? –

답변

2

이러한 생성자도 추가하려고 시도합니다.

public MyCalendarView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

public MyCalendarView(Context context, AttributeSet attrs, int defStyle) { 
    super(context, attrs, defStyle); 
} 
2

이 작업을 수행하려면 일부 생성자를 구현해야합니다. 보기는 다음 가지고

  • View(Context context)
  • [보기 (컨텍스트 컨텍스트 속성 세트에 바인드합니다) (http://developer.android.com/reference/android/view/View.html#View (안드로이드. (컨텍스트 컨텍스트, AttributeSet attrs, int defStyle)] (http://developer.android.com/reference/android/view/View.html#View (content.Context, android.util.AttributeSet))
  • android.content.Context, android.util.AttributeSet, int))

두 번째와 세 번째는 XML 인플레이션에 사용됩니다. 뷰 클래스에 대한 생성자를 구현해야합니다. 생성자는 두 번째 및 아마도 세 번째에 해당합니다.

  • MyCalendar (컨텍스트 컨텍스트의 AttributeSet attrs에)

을 그리고 당신이 필요로하는 경우 (안 아마) 다음을 추가합니다 : 즉, 구현되어

  • MyCalendar (컨텍스트 컨텍스트의 AttributeSet attrs에를 , int defStyle)
관련 문제