如何调用(调用)可扩展列表视图的 onChildClick 方法?

Posted

技术标签:

【中文标题】如何调用(调用)可扩展列表视图的 onChildClick 方法?【英文标题】:how to call (invoke) onChildClick method of expandable listview? 【发布时间】:2012-03-31 18:48:10 【问题描述】:

我正在开发可扩展的列表视图。我在子行的 imageview 上设置了 onClickHandler,因为在这种情况下内联 clicklistner 不起作用。但是我需要 int groupPosition 和 childPosition 在我的程序中进行一些处理。这些可从 OnChildClick() 获得。

问题是我需要 OnclickHandler 和 OnChildClick()(用于 groupPosition 和 ChildPosition)。反正有没有得到这两个值?我们可以手动调用(调用)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_
    android:layout_>

    <LinearLayout 
        android:orientation="horizontal"
        android:layout_
        android:layout_>

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

        android:layout_
        android:layout_/>

         <TextView 
         android:id="@+id/space"                   
         android:layout_
         android:layout_/>

    </LinearLayout>

    <LinearLayout 
        android:orientation="vertical"
        android:layout_
        android:layout_>

        <TextView 
             android:id="@+id/name"         
             android:textSize="14px"             
             android:layout_
             android:layout_/>

        <TextView
             android:id="@+id/number"
             android:textSize="14px"             
             android:layout_
             android:layout_/>

    </LinearLayout>

    <LinearLayout 
        android:orientation="vertical"
        android:layout_
        android:layout_>

        <TextView 
             android:id="@+id/date"         
             android:textSize="14px"          
             android:layout_
             android:layout_
             />

        <TextView 
             android:id="@+id/time"
             android:textSize="14px"         
             android:layout_
             android:layout_
            />        

    </LinearLayout>

     <LinearLayout 
        android:orientation="horizontal"
        android:layout_
        android:layout_>



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

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

        android:layout_
        android:layout_
        android:clickable="true"
        android:onClick="onClickHandler"/>

    </LinearLayout>

</LinearLayout>

【问题讨论】:

我在这里做类似的事情!!!***.com/questions/16621070/… 【参考方案1】:

您可以在您的孩子点击列表中获得按钮点击。 简而言之,只需将“onClickHandler”的 switch case 语句复制粘贴到“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;
                       
     
            
        );
  

如果对您有帮助,请不要忘记将其标记为答案..

【讨论】:

以上是关于如何调用(调用)可扩展列表视图的 onChildClick 方法?的主要内容,如果未能解决你的问题,请参考以下文章

如何使可扩展列表视图的项目选中/不可选中

如何将可扩展列表视图的选定子视图数据从片段发送到父活动?

未显示可扩展列表视图活动。我该如何解决。?

如何在可扩展列表视图中绑定 Json 数据?

当父母在Android中折叠时如何更改可扩展列表视图子项的视图?

如果可扩展列表视图android中的孩子为空,如何单击组