gpt4 book ai didi

java - 过滤器将 ArrayList 添加到 HashMap
转载 作者:太空宇宙 更新时间:2023-11-04 15:11:44 24 4
gpt4 key购买 nike

我有一个ArrayList,它的层次结构有3层。类别,论坛, child 论坛。但是Forum和ChildForum,它们具有相同的属性(最重要的属性是nodeId和parentNodeId)。并且coupe Forums内部没有任何ChildForum。

Category------
|
Forum---------
| |
| ChildForum--------
| |
|______________________Thread

所以我想找到一种方法将它们绑定(bind)到 ListView 中,并在onClickItem上检查哪个论坛有子元素,这样我就可以将 View 导航到正确的 fragment

这就是我现在所做的:

    nodeList = new ArrayList<Node>(); //nodeList contains Category, Forum, and ChildForum
forumNodeList = new ArrayList<Node>();
childList = new ArrayList<Node>(); // temp array
forumChildNodeList = new HashMap<String, ArrayList<Node>>();

填写数据

for (int i = 0; i < nodeList.size(); i++) {
if (nodeList.get(i).getParent_node_id().equals(nodeId)) { //nodeId = categoryId
forumNodeList.add(nodeList.get(i));
}

for (int j = 0; j < forumNodeList.size(); j++) {
if (forumNodeList.get(j).getNodeId()
.equals(nodeList.get(i).getParent_node_id())) {
childList.add(nodeList.get(i));
// Log.d("childList", "" + childList.size());
forumChildNodeList.put(
forumNodeList.get(j).getNodeId(), childList);
}
forumChildNodeList.put(forumNodeList.get(j).getNodeId(),
childList);
}
}

设置点击项:

getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
if (forumChildNodeList.get(
forumNodeList.get(position).getNodeId()).size() > 0) {

//Fragment Transaction to ChildForumFragment
} else {

//Fragment Transaction to ThreadFragment
}

}
});

当我显示登录 onClick 时。看起来所有具有论坛 id 的 HashMap 都有相同的 ChildForum。事实上,他们中的一些人没有任何 child 论坛。我确信,For 循环和 if 条件有问题。或者也许我错过了什么?请帮忙!提前致谢!

最佳答案

我找到了我的问题。这是条件问题:

getListView().setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int position, long arg3) {
if (forumChildNodeList.get(forumNodeList.get(position)
.getNodeId()) != null) {

//Fragment Transaction to ChildForumFragment
} else {

//Fragment Transaction to ThreadFragment
}

}
});

数组应该是ArrayList!=null而不是ArrayList.size()>0

关于java - 过滤器将 ArrayList<object> 添加到 HashMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263380/

24 4 0