Раздувать свой тип представления из файла макета? - PullRequest
0 голосов
/ 09 марта 2010

Я определил макет следующим образом:

<LinearLayout>
  <ListView />
</LinearLayout>

и я хочу использовать для него класс-оболочку:

public class MyView extends LinearLayout {
    ListView mListView;

    public build() {
        mListView = (ListView)findViewById(R.id.mylistview);
    }
}

не уверен, как накачать это из моего файла макета:

MyView v = LayoutInflater.from(this).inflate(R.layout.myview, null);

Инфлятор, конечно, не знает, что такое тип MyView, и возвращает только View. Какой хороший способ примирить это?

Ответы [ 2 ]

0 голосов
/ 16 декабря 2015

Вы должны определить тип макета в XML.

Вместо вашего xml вы должны объявить его так:

<your.package.MyView>
 <ListView />
</MyView>
0 голосов
/ 09 марта 2010

Почему вы раздуваете LinearLayout в линейном макете? Что вам, вероятно, нужно, определите макет для myView. Раздуйте его в какой-нибудь процедуре инициализации (для этого представления). И чем вы будете использовать свой новый вид в формате XML. Подробнее об этом здесь http://developer.android.com/guide/topics/ui/custom-components.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...