Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 过滤器添加阵列列表<;对象>;散列映射_Java_Android_Arraylist_Hashmap - Fatal编程技术网

Java 过滤器添加阵列列表<;对象>;散列映射

Java 过滤器添加阵列列表<;对象>;散列映射,java,android,arraylist,hashmap,Java,Android,Arraylist,Hashmap,我有一个ArrayList,它的层次结构有3层。类别,论坛,儿童论坛。 但是Forum和ChildForum具有相同的属性(最重要的属性是nodeId和parentNodeId)。coupe论坛中没有任何ChildForum Category------ | Forum--------- | | | ChildForum--------

我有一个ArrayList,它的层次结构有3层。类别,论坛,儿童论坛。 但是Forum和ChildForum具有相同的属性(最重要的属性是nodeId和parentNodeId)。coupe论坛中没有任何ChildForum

Category------
             |
            Forum---------
             |           |
             |        ChildForum--------
             |                         |
             |______________________Thread
因此,我想找到一种方法将它们绑定到ListView中,然后单击Item,查看哪个论坛有子论坛或没有子论坛,这样我就可以将视图导航到正确的片段

这就是我现在所做的:

    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>>();
nodeList=newarraylist()//节点列表包含类别、论坛和子论坛
forumNodeList=新的ArrayList();
childList=新建ArrayList();//临时阵列
forumChildNodeList=newHashMap();
填充数据

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);
            }
        }
for(int i=0;i
setOnClickItem:

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
            }

        }
    });
getListView().setOnItemClickListener(新的OnItemClickListener()){
@凌驾
公共链接(AdapterView arg0、视图arg1、,
整数位置,长arg3){
如果(forumChildNodeList.get(
forumNodeList.get(position.getNodeId()).size()>0){
//到ChildForumFragment的片段事务
}否则{
//到ThreadFragment的片段事务
}
}
});
当我显示登录onClick时。看起来所有论坛id为的HashMap都有相同的ChildForum。事实上,他们中的一些人没有任何儿童论坛。 我可以肯定地知道,对于循环和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
        }

    }
});
getListView().setOnItemClickListener(新的OnItemClickListener()){
@凌驾
公共链接(AdapterView arg0、视图arg1、,
整数位置,长arg3){
if(forumChildNodeList.get)(forumNodeList.get(position)
.getNodeId())!=null){
//到ChildForumFragment的片段事务
}否则{
//到ThreadFragment的片段事务
}
}
});

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

对不起!我更新错误!Hashmap forumChildNodeList返回数据错误!