- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,我已经通过一个例子成功地在我的应用程序中制作了一个可扩展的 ListView ,但我真的不明白我是如何成功地获得用户点击的正确索引的,我的意思是,我真的不明白了解 childData 中的内容以及 groupData 和 childData 之间的关系。我需要一些帮助来理解这些人,我从未以这种方式见过泛型。所以这是我的问题:
1- childData 和groupData 是怎么关联的,groupData 是成childData Map 的吗?2- 如何 String selectedWord = childData.get(groupPosition).get(childPosition).get(NAME);
在 ListView 中获得正确的单词和标题(或组)?
代码如下:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.expandable_list_layout);
DBManager db = new DBManager(getApplicationContext());
List<String> header = db.selectAllCategories();
List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();
final List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();
for (String category : header) {
Map<String, String> curGroupMap = new HashMap<String, String>();
groupData.add(curGroupMap);
curGroupMap.put(NAME, category);
List<String> categoryWords = db.selectWordsFromCategory(category);
List<Map<String, String>> children = new ArrayList<Map<String, String>>();
for (String word : categoryWords) {
Map<String, String> curChildMap = new HashMap<String, String>();
children.add(curChildMap);
curChildMap.put(NAME, word);
}
childData.add(children);
}
//create SimpleExpandableListAdapter object...
lv.setOnChildClickListener(new OnChildClickListener() {
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
//How does the below code works?
//How can i get the group value from the childData map
//i thought childData had only childs in it?
String selectedWord = childData.get(groupPosition).get(childPosition).get(NAME);
Log.i("You clicked here:", selectedWord)
return false;
}
});
感谢您的宝贵时间。
最佳答案
groupData
和childData
是两个不相关的数据结构。以下是它们以 JSONey 表示法表示的内容的示例,以了解其中的内容:
groupData = [{"label": "Group 1" }, {"label" : "Group 2"}]
childData = [
[{"label" : "Child 1.1"}, {"label" : "Child 1.2"}],
[{"label" : "Child 2.1"}, {"label" : "Child 2.2"}, {"label" : "Child 2.3"}]
]
如果您的适配器查看这样的数据结构,您将获得包含两组的可扩展 ListView ,第一组中有两个 child ,第二组中有三个 child 。
childData
中的索引对应组,其内部列表中的索引对应组内的子项。内部列表的元素是具有适配器将绑定(bind)到列表项中的 TextView 的值的映射。
希望这对您有所帮助!
关于android - 需要帮助来理解 onChildClick android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4997264/
项目运行正常,案例 3 子级单击“确定”,但如果案例 2 单击,它会显示案例 3 中的 Activity 或我之前删除它的 Activity ,然后返回时它会显示我想要的 Activity (当我单击
你好,我已经通过一个例子成功地在我的应用程序中制作了一个可扩展的 ListView ,但我真的不明白我是如何成功地获得用户点击的正确索引的,我的意思是,我真的不明白了解 childData 中的内容以
我有一个 ExpandableListView查看并实现 OnChildClickListener ,但我需要得到那个 child 的组,更具体地说 - 文本保留为该组的标签。 我该怎么做? 我应该实
我不知道为什么我的 ExpandableListView 的 onChildClick 不起作用。但是 onGroupClick 可以正常工作。 这是我的 fileExpandableList.set
我已经阅读了很多与我遇到的问题相同的线程,但我无法弄清楚发生了什么。我有一个可展开的 ListView ,但我无法使 onChildClickListener 工作。 onGroupClickList
我有一个 ExpandableListView,其中包含带有 CheckBox 和 TextView 的行列表。 我已经通过将复选框可聚焦属性设置为 false 来设法使行可选择。我还在我的 Expa
我有一个可扩展的 ListView ,但是当我展开它并单击子项时,我收到一条错误消息 FATAL EXCEPTION: main Process: com.claritech.simsentinelm
我有一个应用程序使用 ExpandableListView 小部件,其中通过 BaseExpandableListAdapter 填充了项目。该应用程序是为 Android 1.6 版构建的,当我使用
目标: 我正在尝试创建一个每行有 2 个复选框的 UI,每行都分成几个部分。我在下面附上了 UI 的屏幕截图。 当前方法:我正在使用 ExpandableListView 并使用 onChildCli
在 GridView 或简单的 ListView 中,我使用这段代码将一个对象传递给一个新的 Activity ,它工作得很好: gridView.setOnItemClickListener(new
在可扩展 ListView 中搜索后,我的 onClick 出现问题。当我搜索时,我得到了正确的结果,但是当我单独单击这些值时,我得到了不同的结果?请帮忙 我过滤搜索数据的方法 public void
我有一个 Activity 和两个 fragment - Fragment1 和 Fragment2。当应用程序启动时,Fragment1 附加到我的 Activity ,此 fragment 由一个
嗨, friend 们,我正在使用可扩展 ListView ...... 我从数据库中获取值,它显示得很好,但是没有听众在其中工作下面是我的来源...... 主 Activity .java pack
我是一名优秀的程序员,十分优秀!