2012-08-15 108 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

相關問題