Android 是否为ExpadableListView设置onChildItemClickListner?
因此,我想知道是否有任何方法可以为可扩展列表视图设置onclickListner。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
我知道,当您没有使用“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;
}
});
非常感谢,这非常有帮助。实际上,我尝试过这种方法,但我错过了“最终和如果”部分。再次感谢。