Android 如何在可展开列表中为子级创建单击事件

Android 如何在可展开列表中为子级创建单击事件,android,events,listener,Android,Events,Listener,我正在玩弄这个例子。 我不知道如何将侦听器附加到children元素,以便在用户点击电话号码时触发一些操作 任何代码或链接都将不胜感激。您需要订阅 并实现OnChildClickListener @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { // use groupPosit

我正在玩弄这个例子。

我不知道如何将侦听器附加到children元素,以便在用户点击电话号码时触发一些操作

任何代码或链接都将不胜感激。

您需要订阅

并实现OnChildClickListener

@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition,
        int childPosition, long id) {
    // use groupPosition and childPosition to locate the current item in the adapter
    return true;
}

您应该覆盖ExpandableListActivity扩展。

您应该像这样指定可扩展列表中项目的位置

listView.setOnChildClickListener(new OnChildClickListener()
{
    @Override
    public boolean onChildClick(ExpandableListView parent, View v, int group_position, int child_position, long id)
    {
        if(group_position==0 && child_position==0){
            TryFragment secondFragment = (TryFragment) SampleActivity.this.getFragmentManager().findFragmentById(R.id.tryFragment);
            secondFragment.getView().setVisibility(View.VISIBLE);
        } else if(group_position==2 && child_position==2){
            TryFragment secondFragment = (TryFragment) SampleActivity.this.getFragmentManager().findFragmentById(R.id.tryFragment);
            secondFragment.getView().setVisibility(View.VISIBLE);
        }
        return false;
    }
});

这是否适用于我链接到的示例?该示例似乎没有实现ExpandableListView。请确保它在扩展时实现了
ExpandableListActivity
谢谢。您是否知道获取已单击子项的值或“标签”的正确方法?您需要使用两个int值跳转到适配器的正确位置并从中获取值。检查光标您有方法移动位置(pos),然后您只需从光标获取值。我们如何确定组位置而不必手动与值进行比较?因为我的可扩展列表视图最多有100个元素,每个childclicklistener调用不同的URL。重写后如何获取所选的子级?
listView.setOnChildClickListener(new OnChildClickListener()
{
    @Override
    public boolean onChildClick(ExpandableListView parent, View v, int group_position, int child_position, long id)
    {
        if(group_position==0 && child_position==0){
            TryFragment secondFragment = (TryFragment) SampleActivity.this.getFragmentManager().findFragmentById(R.id.tryFragment);
            secondFragment.getView().setVisibility(View.VISIBLE);
        } else if(group_position==2 && child_position==2){
            TryFragment secondFragment = (TryFragment) SampleActivity.this.getFragmentManager().findFragmentById(R.id.tryFragment);
            secondFragment.getView().setVisibility(View.VISIBLE);
        }
        return false;
    }
});