Вопрос:

Ошибка при попытке анализа ответа JSON на просмотры

android json android-volley synchronized

17 просмотра

1 ответ

3 Репутация автора

Я создаю простое новостное приложение, и у меня возникают проблемы при попытке показать данные для просмотра! Проблема странная, так как код выглядит правильно.

Что я делаю: извлекаю данные из URL, анализирую их, затем устанавливаю фрагменты адаптера, но где-то что-то ломается, и я могу это заметить.

Любой добрый и более опытный человек может заглянуть в мой проект и, возможно, поймет, что не так?

Я знаю, что это сообщество ненавидит такой вопрос, но я просто отчаянный человек, нуждающийся в помощи.

Как я получаю данные и перехожу к таблоюту:

ApplicationController.getInstance().addToRequestQueue(
                new JsonObjectRequest(0, url_article, null, new Listener<JSONObject>() {
                    @Override
                    public void onResponse(JSONObject jsonObject) {
                        BaseArticleFragment.categories = JSONParser.parseCategories(jsonObject);
                        BaseArticleFragment.this.mViewPager.setAdapter(new RecyclerViewFragmentPagerAdapter(BaseArticleFragment.this.getChildFragmentManager(), BaseArticleFragment.categories));
                        BaseArticleFragment.this.mTabLayout.setupWithViewPager(BaseArticleFragment.this.mViewPager);
                    }
                }, new Response.ErrorListener() {}

Методы ApplicationController:

public static synchronized ApplicationController getInstance(){
        ApplicationController appController;
        synchronized (ApplicationController.class){
            appController = mInstance;
        }
        return appController;
    }


public <T> void addToRequestQueue(Request<T> req) {
        req.setTag(TAG);
        getRequestQueue().add(req);
    }

метод parseCategories. Я использую optString () / optInt и т. Д. Для предотвращения нуля (как я где-то читал):

public static ArrayList<Category> parseCategories(JSONObject jsonObject) {
        ArrayList<Category> categoryArrayList = new ArrayList<>();
        try {
            JSONArray categories = jsonObject.getJSONArray("categories");
            for (int i = 0; i < categories.length(); i++) {
                JSONObject catObject = categories.getJSONObject(i);
                Category category = new Category();
                category.setTid(catObject.optString("tid"));
                category.setName(catObject.optString("name"));
                categoryArrayList.add(category);
            }
            return categoryArrayList;

        } catch (JSONException e) {
            e.printStackTrace();
            return null;
        }
    }

Поэтому мне нужно "имя", чтобы перейти к тексту вкладки моего tabLayout.

Но по некоторым причинам я получаю пустой белый экран без ничего. И так как я действительно не знаю, как использовать отладчик и все такое, я не могу его отладить.

Поэтому, пожалуйста, помогите, уделив немного вашего времени и энергии, я буду вам очень благодарен.

(Я остаюсь здесь спамить 5 кнопку)

Изменить: Код адаптера:

п

ublic class RecyclerViewFragmentPagerAdapter extends FragmentPagerAdapter {

    private ArrayList<Category> categories;

    public RecyclerViewFragmentPagerAdapter(FragmentManager fm, ArrayList<Category> categories) {
        super(fm);
        this.categories = categories;
    }

    @Override
    public Fragment getItem(int position) {
        return null;
    }

    @Override
    public int getCount() {
        return 0;
    }
}
Автор: Lyra Источник Размещён: 25.04.2019 09:21

Ответы (1)


0 плюса

1 Репутация автора

Может быть, это не работает, потому что JSON, где вы получаете файл, не так? Иногда файл JSON не так прост в управлении. Какую ошибку показывает журнал? Вы должны попробовать с отладкой.

Ваш файл JSON такой? Пример:

{ "user" : [ { "name" : "Lola", "age" : 23 }, { "name" : "Thomas", "age" : 43 } ] }

Автор: Asia Martinis Размещён: 25.04.2019 09:46
Вопросы из категории :
32x32