加载图片和JSON

时间:2015-04-16 02:13:23

标签: android json

以下是我用来从我们正在进行的项目中获取Web服务的json的片段。 TAG_CONTENT包含带图片的html文件。我可以成功加载listview,包括html的内容,我现在遇到的问题是图像没有加载。它只显示一个空格。

 protected Void doInBackground(Void... params) {
            ServiceHandler sh = new ServiceHandler();
            String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);
            Log.d("Response: ", "> " + jsonStr);

            if(jsonStr != null){
                try{
                    JSONObject jsonObj = new JSONObject(jsonStr);
                    news = jsonObj.getJSONArray(TAG_NEWS);

                    for(int i = 0; i< news.length(); i++)
                    {
                        JSONObject n = news.getJSONObject(i);

                        String newsTitle = n.getString(TAG_TITLE);
                        String newsDate = n.getString(TAG_DATE_CREATED);
                        String newsContent = n.getString(TAG_CONTENT);

                        Spanned finalContent = Html.fromHtml(newsContent);
                        HashMap<String, String> newss = new HashMap<String, String>();
                        newss.put(TAG_TITLE, newsTitle);
                        newss.put(TAG_DATE_CREATED, newsDate);
                        newss.put(TAG_CONTENT, finalContent.toString());

                    newsList.add(newss);

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

这是适配器的代码

 @Override
        protected void onPostExecute(Void aVoid) {

            ListAdapter adapter = new SimpleAdapter(getActivity(), newsList, R.layout.list_item_news,
                    new String[]{TAG_TITLE,TAG_DATE_CREATED, TAG_CONTENT},
                    new int[]{R.id.newsTitle, R.id.newsDate, R.id.newsContent});
            setListAdapter(adapter);
            super.onPostExecute(aVoid);
        }

1 个答案:

答案 0 :(得分:0)

正如我所说,你不能像在浏览器中看到的那样在TextView中呈现HTML。

基本上,您需要使用ImageView创建自己的自定义适配器和布局,并解析HTML以获取随后在ImageView上使用的图像元素。由于您是Android的入门者,您可能希望阅读有关ListView here的好教程。当然,有许多用于http,网络,图像加载等的库(Must have libraries for Android)可用,因此您不必重新发明轮子。