Для цикла выдачи, когда данные нулевые - PullRequest
0 голосов
/ 26 мая 2018

Я создаю веб-приложение с 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.

Как я могу это сделать.

1 Ответ

0 голосов
/ 26 мая 2018
if(job.getString("better_featured_image") == null)
     listImage.add(i, "null");

Интересно, почему вы используете i там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...