从视图内部访问TextView

时间:2011-06-15 07:50:39

标签: android android-layout

我有TextView的视图和RelativeLayout中的自定义视图。我正在对xml进行夸大,我看到TextViewCustomView都已呈现。现在我想修改TextView中的文本,具体取决于用户的操作。如何从视图中访问TextView?我认为以下内容可行,但我得到了一个空 -

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

上面的内容来自Activity内部,但我真的想访问它并从View中修改它。

编辑:我没有发布代码,因为它可能会分散注意力。我在想从View里面访问/修改TextView应该是一个普通的问题,而且与我的布局没有任何关系。说完这里是布局 -

<?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 个答案:

答案 0 :(得分:4)

假设两个视图位于相同的布局层次结构中:

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

如果您查看docsfindViewById会搜索其子视图,那么您应该在搜索之前进入层次结构。

答案 1 :(得分:0)

  

我正在给xml充气

所以你不会直接通过this.findViewById

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

然后使用

view.findViewById