Отобразите JsonArray из API и сортируйте - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь отобразить данные из остальных API, содержащих массив Json и список объектов Json. Я попытался следовать учебнику и смог отобразить данные в текстовом представлении. На самом деле я хочу собрать данные в Hashmap с точки зрения пары ключ и значение и отсортировать их соответствующим образом.

        public void onResponse(Call<List<Post>> call, Response<List<Post>> response) {

            if(!response.isSuccessful()){
                textView.setText("Code: " +response.code());
                return;
            }

            int j=0;
            List<Post> posts = response.body();
            Map<Integer,String> data = new HashMap<Integer, String>();

   // Iterating through post and saving data in content variable

           for(Post post: posts)
            {
                String content ="";
                //String name = post.getName();
                if(!(post.getName()==(null)) && !(post.getName().equals("")))
                {
                    data.put(post.getListid(),post.getName()); //For inserting data into hashmap
                    content += "ListID: " + post.getListid() + "" + "\n";
                    content += "Name: " + post.getName() + "" + "\n";
                }


                textView.append(content);

            }

Текущий код сохраняет данные в переменной содержимого и отображает их в тексте. view.

Я относительно новичок в использовании hashmap и модернизации для отображения данных. Я был бы очень признателен, если бы кто-то мог объяснить мне, где я ошибаюсь с моим кодом. Я попытался распечатать данные, но смог распечатать только последнюю строку, а не остальные.

Это мой Json файл, который я хочу отсортировать и отобразить данные

[{"listId":2,"name":null},{"listId":2,"name":"Item 990"},{"listId":2,"name":null},{"listId":2,"name":null},{"listId":2,"name":""},{"listId":4,"name":"Item 771"},{"listId":2,"name":""}]

Это код, который я использую для отображения всех моих json данных в textview

for(Map.Entry entry: data.entrySet())
           {  textView.append(entry.getKey()+ "  Value:" +entry.getValue() +"\n");}

1 Ответ

0 голосов
/ 26 февраля 2020

Я, если правильно понимаю, у вас есть List<Post> posts, который вы хотите отсортировать? Почему бы вам не отсортировать posts так, как вам нужно, и сохранить их соответствующим образом? Вы можете просто удалить post из своего списка, если их имя null или ""

...