以下是我用来从我们正在进行的项目中获取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);
}
答案 0 :(得分:0)
正如我所说,你不能像在浏览器中看到的那样在TextView中呈现HTML。
基本上,您需要使用ImageView创建自己的自定义适配器和布局,并解析HTML以获取随后在ImageView上使用的图像元素。由于您是Android的入门者,您可能希望阅读有关ListView here的好教程。当然,有许多用于http,网络,图像加载等的库(Must have libraries for Android)可用,因此您不必重新发明轮子。