gpt4 book ai didi

java - Android向ArrayList添加数据时出错

转载 作者:行者123 更新时间:2023-12-01 10:29:08 26 4
gpt4 key购买 nike

我发送 POST 请求并获取 JSON 对象。我已经解析了它,但是当我尝试将其添加到 RecyclerViewArrayList 时,我得到 0 大小的 ArrayList。我的AsyncTask:

new AsyncTask<Void, Void, Void>() {
ProgressDialog loading;

@Override
protected void onPreExecute() {
super.onPreExecute();
loading = ProgressDialog.show(LectorsListActivity.this, null, "Please Wait", true, false);
}

@Override
protected Void doInBackground(Void... params) {
try {
LoginLectorUtils httpUtils = new LoginLectorUtils();
String name, uniqueId, photoUrl;
JSONArray array = new JSONArray(httpUtils.sendPostRequest(REQUEST_URL));

for (int i = 0; i < array.length(); i++) {
JSONObject jsonObject = array.getJSONObject(i);

name = jsonObject.getString("name");
uniqueId = jsonObject.getString("unique_id");
photoUrl = jsonObject.getString("photo_url");

//if (!name.equals("") && !uniqueId.equals("") && !photoUrl.equals("")) {
data.add(new LectorsDataModel(name, uniqueId, photoUrl)); // Here i'm adding new items
//}
}

} catch (Exception e) {
Log.e("LectorsListActivity", "Can't create JSONArray");
}

return null;
}

@Override
protected void onPostExecute(final Void str) {
super.onPostExecute(str);
loading.dismiss();
}
}.execute();

//data = new ArrayList<LectorsDataModel>();
//data.add(new LectorsDataModel("", "", ""));

Toast.makeText(LectorsListActivity.this, Integer.toString(data.size()), Toast.LENGTH_SHORT).show(); // Shows 0

adapter = new LectorsAdapter(data, this);
recyclerView.setAdapter(adapter);

最佳答案

您的代码会在获得结果之前执行,因为您是在数据可用之前查找大小。

这里有两个解决方案

解决方案1

添加

Toast.makeText(LectorsListActivity.this, Integer.toString(data.size()), Toast.LENGTH_SHORT).show(); // Shows 0
adapter = new LectorsAdapter(data, this);
recyclerView.setAdapter(adapter);

onPostExecute()方法内部。

解决方案2

添加

adapter.notifyDataSetChanged();

onPostExecute()方法内部。

然后放

adapter = new LectorsAdapter(data, this);

在调用AsyncTask之前

关于java - Android向ArrayList添加数据时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35185882/

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