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