0

这是我的 json 输出示例:

{"podcast":[{"link":"rtsp:\\live.xxx.ro:554\vod\_definst_\mp4:05\rfm_00.mp4","name":"Recording 1"}

为了解析 json 代码,我使用这个:

private static final String TAG_LINK = "link";
        private static final String TAG_NAME = "name";
try {
                    int success = json.getInt(TAG_SUCCESS);

                    if (success == 1) {
                        products = json.getJSONArray(TAG_PRODUCTS);
                        for (int i = 0; i < products.length(); i++) {
                            JSONObject c = products.getJSONObject(i);
                            String link = c.getString(TAG_LINK);
                            String name = c.getString(TAG_NAME);
                            HashMap<String, String> map = new HashMap<String, String>();
                            map.put(TAG_LINK, link);
                            map.put(TAG_NAME, name);
                            productsList.add(map);
                        }
                    } else {

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

                return null;
            }

            protected void onPostExecute(String file_url) {
                pDialog.dismiss();
                runOnUiThread(new Runnable() {
                    public void run() {
                        ListAdapter adapter = new SimpleAdapter(
                                PodCast.this, productsList,
                                R.layout.list_item, new String[] {
                                        TAG_NAME, TAG_LINK },
                                new int[] { R.id.link, R.id.name });
                        setListAdapter(adapter);
                    }
                });

对于布局,这是链接视图的代码:

<TextView
        android:id="@+id/name"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:paddingTop="6dip"
        android:paddingLeft="6dip"
        android:paddingBottom="6dip"
        android:textSize="17dip"
        android:autoLink="web"
        android:textColor="#fff"
        android:textColorLink="#fff"
        android:textStyle="bold"/>

一切正常...但在链接视图中,我得到了整个链接 rtsp://live.xxx.ro...等,我想成为这样的东西: <a href="rtsp://...">NAME </a>所以我会有名字,当我点击它时打开指定的链接。各位大佬能帮我看看怎么弄吗?

4

2 回答 2

1

简单的...

String href = String.format("<a href=\"%s\"> %s </a>", map.get(TAG_LINK), map.get(TAG_NAME));
textV.setText(Html.fromHTML(href))

或者,如果您有一个链接作为资源字符串;只需确保保留的 HTML 字符未转换为 HTML 实体即可。

一个解析不正确的例子:

<string name="a_link">&lt;a href=&quot;http://www.google.com&quot;&gt;click here&lt;/a&gt;</string>

要修复它,strings.xml手动编辑并将 HTML 实体转换为它们所代表的字符,这样上面就变成了:

<string name="a_link"><a href="http://www.google.com">click here</a></string>

它应该工作。

于 2012-08-05T14:17:09.123 回答
0

您需要设置一个函数 setOnItemClickListener() 并在其中声明如下内容:

Uri uri = Uri.parse( "http://www.google.com" );
startActivity( new Intent( Intent.ACTION_VIEW, uri ) );
于 2012-12-12T14:28:47.260 回答