2013-01-06 110 views
2

在我的應用程序中,我嘗試創建自己的Horizo​​ntalScrollView,當您滑過視圖時,它會「捕捉」。每次嘗試加載佈局時,都會崩潰。所以,我正在採取寶貝步驟。我是以編程方式創建自定義視圖的新手,因此如果可能會出現一些「常識」錯誤。Android:創建自定義視圖

這裏是我的CustomView.java文件:

import android.content.Context; 
import android.view.View; 

public class CustomView extends View { 

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

這裏是我的MainActivity.java文件:

import android.app.Activity; 

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_layout); 
    } 
} 

這裏是我的main_layout.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:id="@+id/lchoose_weapon" 
    tools:context=".ChooseWeaponActivity" > 

<TextView 
    android:id="@+id/tvTitle" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" 
    android:text="Title" 
    android:textSize="40sp" /> 

<com.javaknight.ultimaterps.CustomView 
    android:id="@+id/CustomVw" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tvTitle" 
    android:layout_centerHorizontal="true" /> 
<TextView 
    android:id="@+id/tv2" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/CustomVm" 
    android:layout_centerHorizontal="true" 
    android:text="Another TextView Below" /> 

<Button 
    android:id="@+id/bOK" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/tv2" 
    android:layout_centerHorizontal="true" 
    android:text="ok" /> 

</RelativeLayout> 

使用下面的代碼無法顯示佈局。只要我從xml文件中刪除CustomView,它就可以正常工作。我希望xml佈局文件在其中包含Custom View。

+1

粘貼你的堆棧跟蹤 – vsm

回答

7

你應該建立在自定義視圖中的所有構造函數:

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

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

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

如果你這樣做,我想你的佈局工作。

+0

太棒了!有效!! –