2012-08-15 94 views
1

我想将视图的子类添加到我的activity_main.xml中,如thisxml布局中的自定义视图不起作用

但是,设备和模拟器直接退出应用程序。错误似乎是错误充气类com.example.androidtest.PuzzleView

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

<com.example.androidtestapp.PuzzleView 
    android:id="@+id/puzzleView" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="60"/> 

<include 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="40" 
    layout="@layout/activity_input"/> 

</LinearLayout> 

package com.example.androidtestapp; 


public class PuzzleView extends View { 


public PuzzleView(Context context) { 
    super(context); 
    setFocusable(true); 
    setFocusableInTouchMode(true); 


} 
} 
+0

你也可以发布错误吗? – 2012-08-15 14:37:30

+0

我已经解决了这个问题,但是我无法将答案发布到另外7个小时!我只需要将所有三个构造函数重写添加到类,如[this](http://stackoverflow.com/questions/3739661/android-error-inflating-class)。 – rickyoswald 2012-08-15 14:38:01

+2

你忘了构造函数? '公共PuzzleView(上下文环境,AttributeSet attrs)' – KoVadim 2012-08-15 14:39:07

回答

2

我认为这个问题是你需要有AttributeSet中的ATTRS构造函数作为参数

public PuzzleView(Context context, AttributeSet attrs) { 
    super(context, attrs); 
    //code 
} 
+0

是的,我有同样的问题,因为我知道你必须实现扩展类的所有构造函数,才能正常工作。 – Rolice 2012-08-15 14:48:52