如何调用(调用)可扩展列表视图的 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 方法?的主要内容,如果未能解决你的问题,请参考以下文章