gpt4 book ai didi

java - 在模拟器上按下某个键之前,ListView 不会更新

转载 作者:行者123 更新时间:2023-12-01 05:16:32 26 4
gpt4 key购买 nike

我正在开发我的第一个 Android 应用程序,其中我从网络加载一些 JSON,并在解析后在 ListView 中显示数据。当应用程序首次启动时,ListView 是空的。数据加载完后,已经很满了。但是,即使在我的适配器上使用 notifyDataSetChanged()ListView 也不会刷新并显示新加载的数据,直到我按下模拟器键盘上的某个键。

这是我执行的处理。我下载 JSON,解析它,然后我的代码看起来像这样 - 现在,根本没有任何显示,即使按下某个键也不显示:

JSONArray jObject = new JSONArray(new2);
int l = jObject.length();
downloadedArrayOfStrings = new String[jObject.length()];

for(int i = 0; i < l; i++){
Log.v("i", ""+i);
jObject.getJSONObject(i).getString("category").toString();
}

ArrayList<String> lst = new ArrayList<String>();
lst.addAll(Arrays.asList(downloadedArrayOfStrings));
newAdapter = new MobileArrayAdapter(this, lst, downloadedArrayOfStrings);
newAdapter.setJSONArray(jObject);
setListAdapter(newAdapter);

关于为什么会发生这种情况以及如何解决它有什么想法吗?

最佳答案

当列表需要更新时,您应该将ListAdapter重新分配给ListViewnotifyDataSetChanged() 无法与 ListAdapter 一起正常工作,而是设计用于与 CursorAdapter 一起使用。在尝试我上面所说的方法之前,您还可以尝试使用 invalidateViews()invalidateViews() 基本上会重建您的 ListView

关于java - 在模拟器上按下某个键之前,ListView 不会更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11128177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com