Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android textview显示html数据:不显示Listactivity的图像_Android_Image_Android Listview_Textview - Fatal编程技术网

Android textview显示html数据:不显示Listactivity的图像

Android textview显示html数据:不显示Listactivity的图像,android,image,android-listview,textview,Android,Image,Android Listview,Textview,我想用textview显示html数据。因此我使用Html.fromHTML()方法。 除图像外,所有HTML数据都显示正确。这些图像只是在一个小数据框中显示了一个“OBJ”。我想不出这个问题 我的代码可能会更清楚地表达我的问题: public class MyActivity extends ListActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save

我想用textview显示html数据。因此我使用
Html.fromHTML()
方法。 除图像外,所有HTML数据都显示正确。这些图像只是在一个小数据框中显示了一个“OBJ”。我想不出这个问题

我的代码可能会更清楚地表达我的问题:

public class MyActivity extends ListActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    fetchData();
}

private void fetchData() {
    new fetchDataTask().execute();
}

private class fetchDataTask extends AsyncTask<Void, Integer, ArrayList<Map<String, CharSequence>>> {

    @Override
    protected void onPostExecute(ArrayList<Map<String, CharSequence>> result) {
        // set adapter
        String[] from = { "title", "content" };
        int[] to = { R.id.title, R.id.content };
        SimpleAdapter adapter = new SimpleAdapter(MyActivity.this,
                result, R.layout.detail_item, from, to);
        setListAdapter(adapter);
    }

    @Override
    protected ArrayList<Map<String, CharSequence>> doInBackground(Void... params) {
        ArrayList<Map<String, CharSequence>> contentList = new ArrayList<Map<String, CharSequence>>();

        try {
            String dataid = getIntent().getExtras().getString("dataid");
            // fetch json data from webapi
            String result = MyUtil.fetchJsonData("http://www.mywebsite.com/datacontent" + dataid);
            JSONObject data = new JSONObject(result);
            JSONArray contentJArray = data.getJSONArray("content");
            for (int i = 0; i < contentJArray.length(); i++) {
                JSONObject oneObject = contentJArray.getJSONObject(i);
                Map<String, CharSequence> map = new HashMap<String, CharSequence>();
                map.put("id", oneObject.getString("id"));
                map.put("title", oneObject.getString("title"));

                // process content which is html format
                // the content is a html format data as following:
                // hello world, <img src="www.mysite.com/hello.jpg">.<br/>
                ImageGetter imageGetter = new ImageGetter() {
                    @Override
                    public Drawable getDrawable(String source) {
                        Drawable d = null;
                        try {
                            InputStream is = (InputStream) new URL(source)
                                    .getContent();
                            d = Drawable.createFromStream(is, "src");
                        } catch (MalformedURLException e) {
                            e.printStackTrace();
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
                        return d;
                    }

                };
                CharSequence content = Html.fromHtml(
                        oneObject.getString("content"), imageGetter, null);
                map.put("content", content);
                contentList.add(map);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return contentList;
    }

}
公共类MyActivity扩展了ListActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
fetchData();
}
私有void fetchData(){
新建fetchDataTask().execute();
}
私有类fetchDataTask扩展了AsyncTask{
@凌驾
受保护的void onPostExecute(ArrayList结果){
//设置适配器
字符串[]from={“title”,“content”};
int[]to={R.id.title,R.id.content};
SimpleAdapter=新SimpleAdapter(MyActivity.this,
结果,R.layout.detail_项目,从,到);
setListAdapter(适配器);
}
@凌驾
受保护的ArrayList doInBackground(无效…参数){
ArrayList contentList=新的ArrayList();
试一试{
字符串dataid=getIntent().getExtras().getString(“dataid”);
//从webapi获取json数据
字符串结果=MyUtil.fetchJsonData(“http://www.mywebsite.com/datacontent“+dataid);
JSONObject数据=新JSONObject(结果);
JSONArray contentJArray=data.getJSONArray(“内容”);
for(int i=0;i
ImageGetter ImageGetter=新ImageGetter(){
@凌驾
公共可绘制getDrawable(字符串源){
可提取d=null;
试一试{
InputStream为=(InputStream)新URL(源)
.getContent();
d=可绘制的.createFromStream(是“src”);
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
d、 setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
返回d;
}
};
CharSequence content=Html.fromHtml(
getString(“内容”),imageGetter,null);
地图。放置(“内容”,内容);
contentList.add(map);
}
}捕获(JSONException e){
e、 printStackTrace();
}
返回内容列表;
}
}
}


使用
Html.fromHTML()
时,Html中的任何标记都将显示为通用替换图像,您的程序可以通过该图像替换为真实图像

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:padding="10dp"
        android:textSize="16sp" >
    </TextView>

    <TextView
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:padding="10dp"
        android:textSize="16sp" >
    </TextView>

</LinearLayout>