3

Я работаю над расширением списка. Я установил onClickHandler в образе просмотра дочерней строки, потому что встроенные клики-пользователи не работают в этом случае. Но мне нужна int groupPosition и childPosition для некоторой обработки в моей программе. И они доступны из OnChildClick().как вызвать (вызывать) метод onChildClick расширяемого списка?

Проблема в том, что мне нужны OnclickHandler и OnChildClick() (для groupPosition и ChildPosition). Есть ли все равно, чтобы получить эти два значения? можно ли вызвать метод (onoke) OnChildClick вручную?

public class ExpList extends ExpandableListActivity 
    { 
     /** Called when the activity is first created. */ 
     @Override 
     public void onCreate(Bundle icicle) 
      { 
      super.onCreate(icicle); 
      setContentView(R.layout.main); 

      getExpandableListView().setOnChildClickListener(new OnChildClickListener() 
      { 
       public boolean onChildClick(ExpandableListView parent, View v,int groupPosition, int childPosition, long id) 
       { 
        // some calculations here.... 
        return false; 
       } 
      }); 
    } 


public void onClickHandler (View v) 
{ 
    switch (v.getId()) { 
     case R.id.imgcall:  

      //Here I need groupPosition and ChildPosition.... 

       my_function(); 
       break;   

     case R.id.img_call_icon: 

       // some code here......      
       break; 
      }    
    } 
} 

Мой child_row.xml

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <ImageView 
     android:id="@+id/img_call_type" 

     android:layout_width="40px" 
     android:layout_height="40px"/> 

     <TextView 
     android:id="@+id/space"     
     android:layout_width="10px" 
     android:layout_height="wrap_content"/> 

    </LinearLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:id="@+id/name"   
      android:textSize="14px"    
      android:layout_width="115px" 
      android:layout_height="wrap_content"/> 

     <TextView 
      android:id="@+id/number" 
      android:textSize="14px"    
      android:layout_width="115px" 
      android:layout_height="wrap_content"/> 

    </LinearLayout> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:id="@+id/date"   
      android:textSize="14px"   
      android:layout_width="115px" 
      android:layout_height="wrap_content" 
      /> 

     <TextView 
      android:id="@+id/time" 
      android:textSize="14px"   
      android:layout_width="115px" 
      android:layout_height="wrap_content" 
      />   

    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 



<!-- on this imageview i put OnClickHandler -->  

      <ImageView 
      android:id="@+id/img_call_icon" 

     android:layout_width="40px" 
     android:layout_height="40px" 
     android:clickable="true" 
     android:onClick="onClickHandler"/> 

    </LinearLayout> 

</LinearLayout> 
+0

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

ответ

0

Вы можете получить Button Clicks на вашего ребенка Нажмите у слушателя. В короткой копии просто скопируйте свой оператор case switch on onClickHandler в 'onChildClick'.

Таким образом, ваш код будет,

public class ExpList extends ExpandableListActivity 
    { 
     /** Called when the activity is first created. */ 
     @Override 
    public void onCreate(Bundle icicle) 
     { 
     super.onCreate(icicle); 
     setContentView(R.layout.main); 

     getExpandableListView().setOnChildClickListener(new OnChildClickListener() 
     { 
      public boolean onChildClick(ExpandableListView parent, View v,int groupPosition, int childPosition, long id) 
      { 
       switch (v.getId()) { 
    case R.id.imgcall:  

     //Here I need groupPosition and ChildPosition.... 

      my_function(); 
      break;   

    case R.id.img_call_icon: 

      // some code here......      
      break; 
     }    
    } 
      } 
     }); 
    } 

Не забудьте отметить это как ответ, если его полезным для вас ..

+0

Это хорошая попытка, но он возвращает идентификатор целого child_row. –