Проблема со ссылкой на пользовательский вид в макете XML - PullRequest
0 голосов
/ 29 июля 2010

Я пытаюсь обратиться к пользовательскому представлению в XML-макете helloWorld, но получаю следующее исключение: Ошибка надувания класса acme.my.MyTextView.

Однако я могу создать экземпляр представления и добавить его в представление основного содержимого вручную.Пользовательское представление построено на основе собственного XML-макета.Как мне заставить это работать?

public class MyTextView extends LinearLayout {  

 MyTextView(Context context){
  super(context);

  LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  layoutInflater.inflate(R.layout.my_text_view,this);
 }

 MyTextView(Context context, AttributeSet attrs){
  super(context, attrs);

  LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  layoutInflater.inflate(R.layout.my_text_view,this);
 }
}



<?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"
    >
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />

  <view class = "acme.my.MyTextView"
 android:id="@+id/myView" 
 android:orientation="vertical"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"           
 />

Ответы [ 2 ]

1 голос
/ 30 июля 2010

Конструкторы не являются публичными. (

0 голосов
/ 25 ноября 2011

Вы должны называть это так

 <com.example.MyLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

Также сделайте ваши конструкторы общедоступными

...