Android自定义视图导致强制关闭

时间:2010-10-21 21:34:29

标签: android custom-view

我在src>中有自定义视图myproject.test> HomeView

在我的主布局xml中,我有以下内容:

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

    <myproject.test.HomeView
        android:id="@+id/home_view"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
    </myproject.test.HomeView>

</LinearLayout>

在HomeActivity中,我在onCreate方法中有这样的调用。

setContentView(R.layout.main);
HomeView mHomeView = (HomeView) this.findViewById(R.id.home_view);

调用setContentView方法时,app force关闭。似乎我的主要xml不正确。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

你的意思是它没有进入

HomeView mHomeView = (HomeView) this.findViewById(R.id.home_view);

然后崩溃了?

检查你的构造函数是否

HomeView(final Context context, final AttributeSet attrs){
     super(context, attrs);

而不是

HomeView(final Context context){
     super(context);

你需要AttributeSet

答案 1 :(得分:0)

检查HomeView实现的构造函数:

 public HomeView(Context context, AttributeSet atts) {
     super(context, atts); 
 } 

答案 2 :(得分:0)

<LinearLayout xmlns:android = 
      http://schemas.android.com/apk/res/android"
    android:id="@+id/home_root"
    android:orientation="vertical"

我的所有布局都没有@+id。也许您应该将视图设置为home_root。请与您联系 R.java 获取布局名称,或尝试

setContentView(R.layout.home_root);