1

みんな、私は以下のこのJSONを解析しようとしています

{"response": 
{"message": "Success", 
"code": 2002, 
"payload": 
    {"article": [
                    {"timestamp_epoch": 1359967680, 
                    "search_score": 10.0, 
                    "headline": "When Sachin felt like bunking cricket practice", 
                    "timestamp": "2013-02-04 08:48:00", 
                    "related_article_count": 0, 
                    "excerpt": "...their campaign 'Support my School' by NDTV in Mumbai on Sunday. Sachin Tendulkar and Aishwarya Rai Bacchan during an event 3/5 Sachin Tendulkar and Aishwarya Rai Bacchan during an event India's Sachin Tendulkar with actress Aishwarya Rai Bachchan during the...", 
                    "source": {"name": "OneIndia", 
                                "url": "http://www.oneindia.in/", 
                                "daylife_url": "http://www.daylife.com/source/OneIndia", 
                                "rank": 3, 
                                "favicon_url": "http://favicon.daylife.com/imageserve/0e0Jd1Xczb7oW/favicon.png", 
                                "source_id": "0e0Jd1Xczb7oW", 
                                "type": "MAINSTREAM"}, 
                    "url": "http://feedproxy.google.com/~r/oneindia-cricket/~3/z1pS6w289SU/when-sachintendulkar-felt-like-bunking-cricket-practice-066016.html", 
                    "daylife_url": "http://www.daylife.com/article/07nC5eTbBE0YA", 

                    "article_id": "07nC5eTbBE0YA"}, 


                    {"timestamp_epoch": 1360361400, 
                    "search_score": 8.69279902947, 
                    "headline": "Sachin equals Sunny",
                           .
                           .
                           .
                           .
                           .

見出しURLの値だけに興味があります。以下の Java コードを使用して、これらの値を簡単に取得できます。

JSONObject root = new JSONObject(result);
            JSONObject response = root.getJSONObject("response");

            String attributeId = response.getString("message");
            System.out.println(attributeId);

            JSONObject payload = response.getJSONObject("payload");
            JSONArray article = payload.getJSONArray("article");



            for (int i = 0; i < article.length(); i++) {
                JSONObject c = article.getJSONObject(i);
                String headline = c.getString("headline");
                String url = c.getString("url");
                System.out.println(url);
                System.out.println(headline);
                strings.add(c.getString("headline").toString());
            }
            arrayAdapter = new ArrayAdapter<String>(MainActivity.this,
                    android.R.layout.simple_list_item_1, strings);

            resultList.setAdapter(arrayAdapter);
            arrayAdapter.notifyDataSetChanged();

ここでは、ListViewで見出しを設定しています(この部分は正常に動作しています)。ここでの私の質問は次のとおりです。リストをクリックすると、対応するURLWebViewアクティビティに渡されます(実際には、これを別のクラスに実装しています)。これを達成する方法、対応するURLを見出しに保存する方法は?? 誰か助けてください..

前もって感謝します..

4

2 に答える 2

1

2 つのプロパティ (文字列の見出しと文字列の URL) を持つ Article という名前のクラスを作成できます。次に、両方のプロパティのゲッター/セッターを生成します。のような Article タイプの ArrayList を作成します。

ArrayList<Article> articleList = new ArrayList<Article>();

次に、データを解析しながら..

Article article = new article();

のようなオブジェクトに値を入れます。

article.setHeading(c.getString("headline"));
article.setUrl(c.getString("url"));

オブジェクトをarraylistに追加します..

articleList.add(article);

結局のところ、リスト項目をクリックすると、メインアクティビティに OnItemClickListener が追加されます。クリックされたアイテムの位置が表示されます。次に、arcleList のように、対応するオブジェクトの URL を取得できます。

articleList.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                long id) {
            String url = articleList.get(position).getUrl();
            Intent i = new Intent(MainActivity.this,   WebViewActivity.class);
            i.putExtra("url", url);
            startActivity(i);
        }
    });

このURLをメインアクティビティの意図に入れ、それをwebActivityに受け取り、最後にwebViewで使用します...

于 2013-02-11T15:22:00.387 に答える
0

URL、ヘッドラインをモデルとして保存し、ヘッドライン テキストを onView に表示するカスタム アダプタを作成し、listview の onitemclicklistener でアダプタ内のモデル obj にアクセスし、その URL で webview を開きます ... このhttp://www.ezzylearning. com/tutorial.aspx?tid=1763429

および itemclick リスナー

listView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {

  public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
  Model item = (Model)contests_listView.getItemAtPosition(position);  
  Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(item.getUrl()));
  startActivity(browserIntent);  // show url in browser  or pass it to your webview activity

     }
 });
于 2013-02-11T15:12:12.493 に答える