2012-05-23 1 views
0

У меня проблема с получением информации, на которую была нажата часть просмотра. У меня есть дочерний элемент строки определяется как:ExpandableListView onChildНажмите, как получить информацию, какая часть просмотра была нажата.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@+id/child_view" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" > 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/row_height" 
     android:background="@color/app_white" > 


     <CheckBox 
      android:id="@+id/checkbox" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:layout_marginRight="@dimen/row_margin" 
      android:button="@drawable/checkbox_states" 
      android:focusable="false" /> 
    </RelativeLayout> 

    <View 
     android:id="@+id/view" 
     android:layout_width="fill_parent" 
     android:layout_height="10dp" 
     android:background="@android:color/transparent" 
     android:focusable="false" /> 

</LinearLayout> 

и в деятельности мне нужно определить onChildClick

public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, 
      int childPosition, long id) { 
Log.e(LOGTAG, "onChildClick: v.getTag: " + v.getTag() + " groupPos: " + groupPosition 
       + " childPosition: " + childPosition + " rowId: " + id); 

     if (v instanceof LinearLayout) { 
      View view = ((LinearLayout) v).getChildAt(1); 
      if (view != null) { 
       if (view.getTag() != null) { 
        Log.e(LOGTAG, "onChildClick: view.isSelected: "+view.isSelected()); 
        Log.e(LOGTAG, "onChildClick: view.isPressed: "+view.isPressed()); 
        Log.e(LOGTAG, "onChildClick: view.getTag: " + view.getTag()); 
        return true; 
       } 
      } 
     } 

и как я могу видеть вид всегда LinearLayout. Как получить информацию, если щелкнуть View или RelativeLayout?

+0

Вы должны установить прослушиватели для этих представлений, если вы хотите зафиксировать отдельные клики на них. – Luksprog

+0

Я делаю что-то подобное ЗДЕСЬ !!! http: //stackoverflow.com/questions/16621070/get-context-of-popupmenu-like-contextmenu – toobsco42

ответ

0

onChildClick() всегда будет возвращать всю дочернюю строку, которая была нажата. если вы хотите узнать, было ли нажато RelativeLayout, вам нужно добавить onCLickListener к этому.