簡體   English   中英

如何在Android的RecylerView中顯示其他Json對象

[英]How to show other Json objects in RecylerView on Android

我想為一個網站開發android應用程序。 我從json閱讀網站帖子,並每10個帖子在RecyclerView顯示一次。
我可以顯示標題,描述和縮略圖。 但我想從縮略圖 thumbnail_images實例顯示介質 我不知道如何從媒體中讀取圖像?

我的Json鏈接: 鏈接

AsyncTaskCodes:

public class MainDataInfo {
    private Context mContext;
    private String ServerAddress = ServerIP.getIP();

    public void getMainDataInfo(Context context) {
        mContext = context;
        new getInfo().execute(ServerAddress + "page=1");
    }

    private class getInfo extends AsyncTask<String, Void, String> {
        EventBus bus = EventBus.getDefault();
        private String ou_response;
        private List<MainDataModel> infoModels;

        @Override
        protected void onPreExecute() {
            CustomProcessDialog.createAndShow(mContext);
            infoModels = new ArrayList<>();
        }

        @Override
        protected String doInBackground(String... params) {
            OkHttpClient client = new OkHttpClient();

            Request request = new Request.Builder()
                    .url(ServerAddress + "page=1")
                    .build();

            Response response;
            try {
                response = client.newCall(request).execute();
                ou_response = response.body().string();
                response.body().close();
                if (ou_response != null) {
                    try {
                        JSONObject postObj = new JSONObject(ou_response);
                        JSONArray postsArray = postObj.getJSONArray("posts");
                        infoModels = new ArrayList<>();

                        for (int i = 0; i <= infoModels.size(); i++) {
                            JSONObject postObject = (JSONObject) postsArray.get(i);
                            int id = postObject.getInt("id");
                            String title = postObject.getString("title");
                        //get other data
                        JSONObject imageObj = postObject.getJSONObject("thumbnail_images");
                        JSONObject mediumObj = imageObj.optJSONObject("medium");
                        String mediumImage = mediumObj.getString("url");
                            Log.d("Data", "Post id: " + id);
                            Log.d("Data", "Post title: " + title);

                            //Use the title and id as per your requirement
                                infoModels.add(new MainDataModel(
                                        postObject.getInt("id"),
                                        postObject.getString("title"),
                                        postObject.getString("content"),
                                        postObject.getString(mediumImage)));

                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
            return ou_response;
        }

        @Override
        protected void onPostExecute(String result) {
            CustomProcessDialog.dissmis();
            if (result != null) {
                bus.post(infoModels);
            }
        }
    }
}

為了獲取中等圖像,我使用以下代碼:

                            //get other data
                            JSONObject imageObj = postObject.getJSONObject("thumbnail_images");
                            JSONObject mediumObj = imageObj.optJSONObject("medium");
                            String mediumImage = mediumObj.getString("url");

但是當為infoModels.add(new MainDataModel()設置mediumImage ,不顯示任何帖子!

如何設置從媒體的圖片? 謝謝所有<3

   private void setImageWithPicaso(String imageUrl) {
    if (!(imageUrl == null)) {
        Picasso.with(getActivity()).load(imageUrl).placeholder(R.drawable.placeholder_background).into(imageView, new Callback() {
            @Override
            public void onSuccess() {
                //On Success
            }

            @Override
            public void onError() {
                spinner.setVisibility(View.GONE);
                //On Error


            }
        });
    } else {
        spinner.setVisibility(View.GONE);
       //On Error
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM