Макет не раздувается в пользовательском компоненте Android

я получаю исключение нулевого указателя в моем пользовательском представлении (которое является производным отLinearLayout) потому что это можетне находит своих дочерних взглядов. Вот код:

public class MyView extends LinearLayout
{
    public MyView(Context context, AttributeSet attrs)
    {
        this(context, attrs, 0);
    }

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

    private TextView mText;

    @Override
    protected void onFinishInflate()
    {
        super.onFinishInflate();
        mText = (TextView) findViewById(R.id.text);

        if (isInEditMode())
        {
            mText.setText("Some example text.");
        }
    }
}

Вот макет (my_view.xml):




    


И вот как я положил это в файл XML:

    

Но когда я пытаюсь просмотреть его в редакторе макета, я получаю NPE наmText.setText(...) так какgetViewById() возвращается.null

Какие'происходит?

осветление

Я ожидаю, что это сработает, если я

MyView v = (MyView)inflater.inflate(R.layout.my_view);
((TextView)v.findViewById(R.id.text)).setText("Foo");

все отлично работает Разве это не то, что делает inflater макета, когда он проходит через файл макета? В любом случае, как я могу правильно обрабатывать обе ситуации (без получения бессмысленных вложенных представлений)?

Ответы на вопрос(1)

Ваш ответ на вопрос