Android 是否为ExpadableListView设置onChildItemClickListner?

Android 是否为ExpadableListView设置onChildItemClickListner?,android,android-listview,onclicklistener,Android,Android Listview,Onclicklistener,因此,我想知道是否有任何方法可以为可扩展列表视图设置onclickListner。 我知道,当您没有使用“HashMap”实现子数据时,这是可能的。 这是我的密码。我厌倦了hashmap方法的所有可能的onclick侦听器。但是还没有成功 在这里输入代码 package com.prashant.dfs; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.os.B

因此,我想知道是否有任何方法可以为可扩展列表视图设置onclickListner。
我知道,当您没有使用“HashMap”实现子数据时,这是可能的。 这是我的密码。我厌倦了hashmap方法的所有可能的onclick侦听器。但是还没有成功

在这里输入代码

package com.prashant.dfs;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ExpandableListView;

public class Chapter_1_full extends Activity {


ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> ListDataHeader;
HashMap<String,List<String>> listDataChild;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_chapter_1_full);

    //get the listView(expand)
    expListView = (ExpandableListView) findViewById(R.id.ch1_expand);
    //prepareDataList
    prepareListData();

    listAdapter=new ExpandableListAdapter(this, ListDataHeader, listDataChild);

    expListView.setAdapter(listAdapter);
}

private void prepareListData() {
    ListDataHeader = new ArrayList<String>();
    listDataChild=new HashMap<String, List<String>>();
    //Adding child Data

    ListDataHeader.add("1.1 Introductin");
    ListDataHeader.add("1.2 DataType");
    ListDataHeader.add("1.3 ADT");


    List<String> Intro = new ArrayList<String>();
    Intro.add("WHAT is DFS");
    Intro.add("Algorithem");
    Intro.add("Flowchart");


    List<String> datatype = new ArrayList<String>();
    datatype.add("WHAT is DFS");
    datatype.add("Algorithem");
    datatype.add("Flowchart");


    List<String> ADT = new ArrayList<String>();
    ADT.add("WHAT is DFS");
    ADT.add("Algorithem");
    ADT.add("Flowchart");


    listDataChild.put(ListDataHeader.get(0),Intro);
    listDataChild.put(ListDataHeader.get(1),datatype);
    listDataChild.put(ListDataHeader.get(2),ADT);


}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.chapter_1_full, menu);
    return true;
}
package com.prashant.dfs;
导入java.util.ArrayList;
导入java.util.HashMap;
导入java.util.List;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.Menu;
导入android.widget.ExpandableListView;
公开课第1章全面展开活动{
可扩展列表适配器;
ExpandableListView解释视图;
列表列表数据头;
HashMapListDataChild;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u chapter\u 1\u full);
//获取列表视图(展开)
expListView=(ExpandableListView)findViewById(R.id.ch1\u expand);
//预备主义者
prepareListData();
listAdapter=新的ExpandableListAdapter(此,ListDataHeader,listDataChild);
expListView.setAdapter(listAdapter);
}
私有void prepareListData(){
ListDataHeader=新的ArrayList();
listDataChild=newHashMap();
//添加子数据
添加(“1.1简介”);
添加(“1.2数据类型”);
添加(“1.3 ADT”);
List Intro=new ArrayList();
介绍添加(“什么是DFS”);
介绍添加(“算法”);
引言添加(“流程图”);
List datatype=new ArrayList();
添加(“什么是DFS”);
datatype.add(“Algorithem”);
数据类型。添加(“流程图”);
List ADT=new ArrayList();
ADT.添加(“什么是DFS”);
ADT.添加(“算法”);
ADT.添加(“流程图”);
listDataChild.put(ListDataHeader.get(0),Intro);
listDataChild.put(ListDataHeader.get(1),数据类型);
listDataChild.put(ListDataHeader.get(2),ADT);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单第1章已满,菜单);
返回true;
}

}

好吧,假设您的适配器正确地实现了它的方法

    expandableListView.setOnChildClickListener(new OnChildClickListener() {

        @Override
        public boolean onChildClick(final ExpandableListView parent, final View view, final int groupPosition, final int childPosition,
                final long identifier) {

            final Object childObj = parent.getExpandableListAdapter().getChild(groupPosition, childPosition);

            if (childObj != null) {

                // Do your magic
            }

            return true;
        }
    });

非常感谢,这非常有帮助。实际上,我尝试过这种方法,但我错过了“最终和如果”部分。再次感谢。