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...etc そして、私は次のようなものになりたいと思います: <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 に答える