Доступ к TextView изнутри представления - PullRequest
2 голосов
/ 15 июня 2011

У меня есть вид с TextView и пользовательский вид, размеченный в RelativeLayout. Я надуваю xml и вижу как TextView, так и CustomView. Теперь я хочу изменить текст в TextView в зависимости от действий пользователя. Как я могу получить доступ к TextView из вида? Я думал, что следующее будет работать, но я получил ноль -

mDisplay = (TextView)this.findViewById(R.id.displayBuffer);

Вышеприведенное работает внутри Activity, но я действительно хочу получить к нему доступ и изменить его из View.

РЕДАКТИРОВАТЬ: я не публиковать код, потому что это может отвлечь от вопроса. Я думаю, что доступ / изменение TextView изнутри View должно быть общей проблемой и никак не связано с моим макетом в частности. Сказав, что вот макет -

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


            <TextView
                android:id="@+id/question"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:textSize="30sp"
                android:text="ASDFASDF"
                android:textColor="#ffFFFFFF"   
                android:layout_gravity="center_vertical"
                android:paddingBottom="9dip"
                android:layout_marginLeft="3dip"
                android:layout_marginRight="2dip"/>

           <com.ac.gui.CustomView

            android:layout_below="@+id/question"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" />

</RelativeLayout>

Спасибо, - P

Ответы [ 2 ]

4 голосов
/ 15 июня 2011

Предполагая, что два представления находятся в одной иерархии макета:

mDisplay = (TextView) this.getRootView().findViewById(R.id.displayBuffer);

Если вы посмотрите на документы , findViewById ищет его дочерние представления, поэтому вы должны подняться наиерархия перед поиском.

1 голос
/ 15 июня 2011

Я надуваю xml

Так что вы не получите напрямую по this.findViewById

View view = inflater........

Тогда используйте

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