有以下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 :(得分:2)
您需要为此实现一些构造函数。 View包含以下内容:
第二个和第三个用于XML通胀。您需要为视图类实现与第二个(可能是第三个)对应的构造函数。也就是说,实施:
如果您需要(可能不需要),请添加以下内容:
答案 1 :(得分:2)
尝试添加这些构造函数
public MyCalendarView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyCalendarView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}