在Android中从GestureOverlayView中获取孩子

在Android中从GestureOverlayView中获取孩子,android,view,android-layout,Android,View,Android Layout,我正在尝试从GestureOverlyView获取TextView作为子元素 以下是我的视图xml代码: <RelativeLayout android:layout_width="fill_parent" android:id="@+id/relativeLayout1" android:layout_height="wrap_content"> <android.gesture.GestureOverlayView android:layout_height="wr

我正在尝试从GestureOverlyView获取TextView作为子元素

以下是我的视图xml代码:

<RelativeLayout android:layout_width="fill_parent" android:id="@+id/relativeLayout1" android:layout_height="wrap_content">
    <android.gesture.GestureOverlayView android:layout_height="wrap_content" android:id="@+id/gestureOverlayView1" android:layout_width="wrap_content" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentLeft="true">
        <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:id="@+id/linearLayout2" android:layout_height="wrap_content">
            <LinearLayout android:orientation="horizontal" android:weightSum="1" android:layout_width="260dp" android:id="@+id/linearLayout1" android:layout_height="wrap_content" android:baselineAligned="false" android:layout_weight="0.32">
                <CheckBox android:id="@+id/sListCheckbox"  android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.32"></CheckBox>
                <TextView android:text="TextView" android:id="@+id/sListText" android:layout_width="212dp" android:ems="15" android:layout_gravity="center" android:textAppearance="?android:attr/textAppearanceLarge" android:singleLine="true" android:layout_height="wrap_content" android:layout_weight="0.32"></TextView>
            </LinearLayout>
            <ImageView android:paddingRight="0dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_weight="0.32" android:id="@+id/imageView1" android:src="@drawable/searchbutton"></ImageView>
        </LinearLayout>
    </android.gesture.GestureOverlayView>
</RelativeLayout>

您正在调用RelativeLayout llt=(RelativeLayout)v.getParent();-->变量中的llt表示线性布局, 但是你得到了一个相对的年轻人?试试这个:

LinearLayout ll = (LinearLayout)findViewById(R.id.linearLayout1);
TextView childText = (TextView)ll.getChildAt(1); // it may be 2 depending on if the root is 0 or not, cant remember
实际上,为什么不这样做:

TextView childText = (TextView)findViewById(R.id.sListText);

我用这个解决了我的问题

RelativeLayout  llt = (RelativeLayout) v.getParent();
GestureOverlayView gow = (GestureOverlayView) llt.getChildAt(0);
LinearLayout ll1 = (LinearLayout) gow.getChildAt(0);
LinearLayout ll2 = (LinearLayout) ll1.getChildAt(0);
TextView childText = (TextView) ll2.getChildAt(1);
我不能用

TextView childText = (TextView)findViewById(R.id.sListText);

这是因为我从列表视图上的运动事件侦听器中获取v视图,我不知道哪个textview正在返回。

程序在哪一行崩溃?你能发布异常/错误日志吗?我猜你没有得到正确的家长观点。请将代码张贴在您获得返回null的v.childText的位置gestureOverlayview ontouchevent是否适合您?我无法让它工作
TextView childText = (TextView)findViewById(R.id.sListText);