Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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 更新适配器时listview中的灰色空间_Java_Android_Android Layout_Android Arrayadapter - Fatal编程技术网

Java 更新适配器时listview中的灰色空间

Java 更新适配器时listview中的灰色空间,java,android,android-layout,android-arrayadapter,Java,Android,Android Layout,Android Arrayadapter,所以我设置了一个listview和适配器。当我在oncreate方法中通过adapter.add添加项时,一切正常。但当我通过一个监听器添加它时,它会创建一个奇怪的灰色空间,好像这些项目在其他项目下面: 这是添加项目的代码: ArrayList<Task> newTasks = new ArrayList<>(Arrays.asList(parser.ParseTasksJson(result))); fo

所以我设置了一个listview和适配器。当我在oncreate方法中通过adapter.add添加项时,一切正常。但当我通过一个监听器添加它时,它会创建一个奇怪的灰色空间,好像这些项目在其他项目下面:

这是添加项目的代码:

                ArrayList<Task> newTasks = new ArrayList<>(Arrays.asList(parser.ParseTasksJson(result)));

                for (int i =0; i < 3;i++)
                {
                    Task task = new Task(i, "Item" + i, 0);
                    tasks.add(task);
                }

                for(Task t : newTasks)
                {

                    adapter.add(new Task(t.getTask_id(), t.getTask_title(), t.getTask_done()));
                }
                adapter.add(new Task(99,"Task after forloop", 0));

                adapter.notifyDataSetChanged();`enter code here`
这是我的布局:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

    <include layout="@layout/toolbar_home"/>

    <ListView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/listview">
    </ListView>
</LinearLayout>

编辑:我不够清楚。真正的问题在于,尽管解析器中的项已添加到适配器中,但它们不会显示在listview中。请参阅更新的代码。

您的代码工作正常,但问题出在这一行:

adapter.add(new Task(t.getTask_id(), t.getTask_title(), t.getTask_done()));
请确保这些值是正确的,在我看来,您的数据似乎不包含有效的标题,并且布局项的高度为换行内容。也就是说,这些项目被添加了,但不够高,因为它们没有任何内容


这就是为什么你会看到奇怪的灰色空间,它们实际上是几个项目,但不够大,无法看到。

DoIt-android:divider=@null-android:dividerHeight=1dpIs监听器真的被调用了吗?你检查过了吗?@GiovanniTerlingen是的,项目确实添加到了适配器中,只是列表视图中没有显示。我可以看看你的适配器项目布局和适配器代码吗?