Java 更新适配器时listview中的灰色空间
所以我设置了一个listview和适配器。当我在oncreate方法中通过adapter.add添加项时,一切正常。但当我通过一个监听器添加它时,它会创建一个奇怪的灰色空间,好像这些项目在其他项目下面: 这是添加项目的代码: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
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是的,项目确实添加到了适配器中,只是列表视图中没有显示。我可以看看你的适配器项目布局和适配器代码吗?