Ничего не установлено или показано фрагментом - PullRequest
0 голосов
/ 22 марта 2019

Я получаю данные от Json и хочу установить значения в моем текстовом представлении фрагмента. В журнале я получаю все данные, но я просто вижу пустой фрагмент в моем телефоне и ничего не установлено!

public class FragmentReviews extends Fragment {

    View v;
    private Movie movie;
    private String movieId;
    private LinearLayout mGallery;
    private LayoutInflater mInflater;
    private RequestQueue queue;

    public FragmentReviews() {
    }

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        v = inflater.inflate(R.layout.review_fragment, container, false);

        mGallery = (LinearLayout) v.findViewById(R.id.movie_reviews_gallery);
        return v;
    }

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        mInflater = LayoutInflater.from(getActivity());

        queue = Volley.newRequestQueue(getActivity());

        movie = (Movie) getActivity().getIntent().getSerializableExtra("movie");
        movieId = movie.getMovieId();

        getreviews(movieId);
    }

    private void getreviews(String movieid) {

        JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET,
                Constants.MAIN_INFO_URL_LEFT + movieid + Constants.MAIN_INFO_URL_RIGHT, null, new Response.Listener<JSONObject>() {
            @Override
            public void onResponse(JSONObject response) {

                try {
                    JSONObject review = response.getJSONObject("reviews");
                    JSONArray reviews = review.getJSONArray("results");

                    String name = null;
                    String text = null;

                    if (reviews.length() > 0) {

                        for (int i = 0; i <= reviews.length(); i++) {

                            JSONObject rev = reviews.getJSONObject(i);
                            name = rev.getString("author");
                            text = rev.getString("content");
                            View view = mInflater.inflate(R.layout.index_reviews_gallery,
                                    mGallery, false);
                            TextView rname = (TextView) view
                                    .findViewById(R.id.id_index_reviews_name);
                            rname.setText(name + ":");
                            JustifiedTextView revtext = (JustifiedTextView) view
                                    .findViewById(R.id.id_index_reviews_text);
                            revtext.setText(text);
                            mGallery.addView(view);
                        }

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


            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        });
        queue.add(jsonObjectRequest);
    }
}

Я не понимаю, в чем проблема и почему я не могу получить представление в моем фрагменте, и я благодарен за вашу помощь.

Я не знаю, что сказать больше, но переполнение стека просто получитьошибка, которую мне нужно объяснить больше !!!!!Надеюсь, этого будет достаточно.

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

Спасибо всем.Проблема была в viewpager layout_height, который не работал на wrap_content!

0 голосов
/ 22 марта 2019

- может быть одна из причин, по которой вы звоните getreviews в onCreate до onCreateView, что инициализирует mGallery.Вы можете попытаться getreviews вызвать berfore returing v и после mGallery = (LinearLayout) v.findViewById(R.id.movie_reviews_gallery);- также ошибки не печатаются в onErrorResponse. Просто предложение поместить туда несколько журналов ошибок.- http соединения по умолчанию заблокированы в новых версиях Android.:)

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