2012-05-24 2 views
0

Я новичок в программировании андроида ... поэтому, пожалуйста, будьте терпеливы ..Ошибка при наполнении XML файл макета

Я пытаюсь загрузить пользовательский вид (ArticleView) в деятельности, где мой настраиваемое представление в определяется как подкласс класса активности. Я создал следующий XML-файл макета для деятельности, содержащей пользовательский вид:

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

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/ArticleLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <aarddict.android.ArticleView // here's the line # 14 
      android:id="@+id/ArticleView" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/ButtonLayout" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_alignParentRight="true" 
     android:layout_marginBottom="5dp" 
     android:layout_marginRight="5dp" 
     android:gravity="bottom" > 

     <Button 
      android:id="@+id/NextButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:drawableRight="@drawable/ic_next" 
      android:visibility="gone" /> 
    </LinearLayout> 

</RelativeLayout> 

Что происходит, я держу на получать ошибку времени выполнения (приложение умирает), глядя в LogCat я получаю:

05-24 23:41:06.685: E/AndroidRuntime(600): java.lang.RuntimeException: Unable to start activity ComponentInfo{aarddict.alidev.android/aarddict.alidev.android.ArticleViewActivity}: android.view.InflateException: Binary XML file line #14: Error inflating class aarddict.android.ArticleView 
05-24 23:41:06.685: E/AndroidRuntime(600): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 
05-24 23:41:06.685: E/AndroidRuntime(600): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
05-24 23:41:06.685: E/AndroidRuntime(600): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
05-24 23:41:06.685: E/AndroidRuntime(600): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
05-24 23:41:06.685: E/AndroidRuntime(600): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-24 23:41:06.685: E/AndroidRuntime(600): at android.os.Looper.loop(Looper.java:137) 
05-24 23:41:06.685: E/AndroidRuntime(600): at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-24 23:41:06.685: E/AndroidRuntime(600): at java.lang.reflect.Method.invokeNative(Native Method) 

код:

interface ScrollListener { 
    void onScroll(int l, int t, int oldl, int oldt); 
} 

private ScrollListener scrollListener; 

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

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

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

@Override 
protected void onScrollChanged(int l, int t, int oldl, int oldt) { 
    super.onScrollChanged(l, t, oldl, oldt); 
    if (scrollListener != null) { 
     scrollListener.onScroll(l, t, oldl, oldt);   
    } 
} 

public void setOnScrollListener(ScrollListener l) { 
    this.scrollListener = l; 
} 
} 
+0

Вы не можете вставить в активность в макете. Я не уверен, что вы пытаетесь выполнить, но то, что вы сейчас делаете, не будет работать. – dymmeh

+0

Вы должны быть подклассом View или одним из существующих подклассов. – Simon

ответ

0

Правильный ответ неверен. Вы можете определить различные действия по проекту. Ошибка просто
aarddict.android.ArticleView должен быть yourpackagename.ArticleView

Смежные вопросы