Ссылка на представление в другом XML-файле - PullRequest
3 голосов
/ 12 апреля 2011

У меня есть ListView в файле с именем a.xml.

<ListView
        android:id="@+id/mylistview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:scrollbars="none"
        android:layout_above="XYZ"
        />

В .xml я также включаю другой файл с именем b.xml.

<include android:id="@+id/bottombar" layout="@layout/b" />

Для одной из настроек ListView я хочу сослаться на идентификатор (XYZ), который существует в b.xml.

Есть ли способ, которым я могу это сделать?

Я пробовал следующее:

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <include android:id="@+id/bottombar" layout="@layout/b" />
    <ListView
        android:id="@+id/mylistview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:scrollbars="none"
        android:layout_above="@id/bottombar_background"
        />
</RelativeLayout>

Где @ id / botombar_background существует в @ layout / b, но Eclipse выдает мне ошибки «нет ресурсов».

Ответы [ 2 ]

1 голос
/ 12 апреля 2011

После того, как вы использовали setContentView(R.layout.a), вы сможете использовать findViewById(R.id.my_id_in_b).

0 голосов
/ 13 апреля 2011

Используйте этот синтаксис: android: layout_toLeftOf = "@ + id / my_id_from_b". Это предотвращает любые проблемы со ссылками.

Плюс в этом случае говорит компилятору сделать второй проход по макету, ища этот идентификатор во второй раз. Попробуйте - я знаю, что это работает, так как я использую этот синтаксис все время.

...