Я создаю веб-приложение с AsyncTask
.Используя цикл for
, потому что у меня есть CustomListAdapter
для ListView
.onPostExecute()
содержит приведенный ниже код.
JSONArray jarr = new JSONArray(json);
if(jarr.length() > 0){
List<String> listImage = new ArrayList<>();
for(int i = 0; i<jarr.length(); i++){
JSONObject job = new JSONArray(json).getJSONObject(i);
if(job.getString("better_featured_image") != null){
listImage.add(i, job.getJSONObject("better_featured_image").getJSONObject("media_details").getJSONObject("sizes").getJSONObject("medium").getString("source_url"));
String[] itr = listImage.toArray(new String[i]);
image = itr.clone();
}
}
}
Ответ json
аналогичен приведенному ниже.Первая строка раскрыта для ясного примера, а следующая свернута, чтобы легко понять.
[{"id":1, "title":{"rendered":" The Title"}, "better_featured_image":{" media_detais":{"sizes":{"medium":{"source_url":"http://thumbnail_url.png"}}}},
{"id":2.....,"source_url":"url.png"},
{"id":3.....,"source_url":"url.png"},
{"id":4.....,"better_featured_image":null},
{"id":5.....,"source_url":"url.png"}]
Вы можете видеть, что это WP Rest Api
, и я также использую Better Featured Image - WP Rest Api
.
ЗапрошенныйURL-адрес как показано ниже http://..../wp-api/posts?per_page=10&fields=id,title,excerpt,better_featured_image
.
Все это прекрасно, и я могу показать изображение на ImageView
.URL для идентификатора 1,2,3,5 в порядке, следуя приведенному выше ответу json
.
Но обратите внимание на ответ для id:4
.Он содержит ноль в better_featured_image
, потому что в этой статье нет ни одного рекомендуемого изображения.
Мой java
код, упомянутый выше, работает хорошо, но остановлен для этого нулевого значения.Вы можете видеть, что я немного попробовал.Но это не удается, потому что я должен передать URL-адреса в массив String[] image
, который будет использоваться для загрузки Bitmap
с AsyncTask
в другой Activity
.
Итак, моя проблема и коды большие.
* List listImage
содержит URL-адреса, которые вводятся в цикл for
.Но, значение null
вызывает проблему.
Я хочу, чтобы все URL-адреса были в порядке, и которые содержат нулевое значение, добавят строку null
в список.
Что я принял
1 => 1st url
2 => 2nd url
3 => 3rd url
4 => null
5 => 5th url
Что я получаю
1 => 1st url
2 => 2nd url
3 => 3rd url
4 => 5th url
Я не понимаю.Потому что это очень трудно сделать с loop
.
Как я могу это сделать.