1

私は最近、ウェブサーバーからの取得、解釈、表示に関するチュートリアルに従っていますが、いくつかの問題に遭遇しました。どんなに頑張っても、ArrayAdapter にtwitterFeed変数を設定できないようです。昨日、クラスfetchTwitterPublicTimelineを別のスレッドで実行するように言われました。それを実行しましたが、ArrayAdapter に値を設定できません。setListAdapterのtwitterFeed変数にカーソルを合わせると表示されるエラー「twitterFeed を解決できません」というエラーが表示され、クラスが実行されていないか、変数が適切に渡されていない可能性があると思われます。私のコードは以下のとおりです。 !

MainActivity.java:

package com.example.simplebrowser;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.Timer;
import java.util.TimerTask;
import java.util.List;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.os.Bundle;
import android.os.Handler;
import android.widget.ArrayAdapter;

public class MainActivity extends ListActivity {


/** Called when the activity is first created. */

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    Handler handler = new Handler() {
        public void run() {
            ArrayList<String> twitterFeed = fetchTwitterPublicTimeline();

        }

    };

    setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, twitterFeed));  
  }


public ArrayList<String> fetchTwitterPublicTimeline() {
      ArrayList<String> listItems = new ArrayList<String>();

      try {
          URL twitter = new URL("http://twitter.com/statuses/public_timeline.json");
          URLConnection tc = twitter.openConnection();
          BufferedReader in = new BufferedReader(new InputStreamReader(tc.getInputStream()));
          String line;

          while ((line = in.readLine()) != null) {
              JSONArray ja = new JSONArray(line);
              for (int i = 0; i < ja.length(); i++) {
                  JSONObject jo = (JSONObject) ja.get(i);
                  listItems.add(jo.getString("text"));
              }
          }
      } catch (MalformedURLException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      } catch (IOException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      } catch (JSONException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
      }

      return listItems;

  } 


}

編集:それは間違いだったので、ハンドラーのコメントを外しました。問題はまだ解決されていません。

4

0 に答える 0