2012-03-23 8 views
0

私は単純に特定のハッシュタグからすべてのつぶやきを取得し、Androidのリストビューに表示しようとしています。アイブ氏は、すべてのエラーを取得doesntのいくつかのコードを得たが、私はアプリケーションを実行すると、Androidはちょうど私は、これが問題の大半がどこにあるかもしれないと思いますが、予期せず終了:つぶやきを表示しようとすると、JSONとJavaに関する問題が発生する

public ArrayList<Tweet> getTweets(String searchTerm, int page) throws JSONException { 
    String searchUrl = "http://search.twitter.com/[email protected]" 
         + searchTerm + "&rpp=100&page=" + page; 

    ArrayList<Tweet> tweets = new ArrayList<Tweet>(); 

    HttpClient client = new DefaultHttpClient(); 
    HttpGet get = new HttpGet(searchUrl); 

    ResponseHandler<String> responseHandler = new BasicResponseHandler(); 

    String responseBody = null; 
    try{ 
     responseBody = client.execute(get, responseHandler); 
    }catch(Exception ex) { 
     ex.printStackTrace(); 
    } 

    JSONObject jsonObject = null; 
    JSONParser parser=new JSONParser(); 

    try { 
     Object obj = parser.parse(responseBody); 
     jsonObject=(JSONObject)obj; 

    }catch(Exception ex){ 
     Log.v("TEST","Exception: " + ex.getMessage()); 
    } 

    JSONArray arr = null; 

    try { 
     Object j = jsonObject.get("results"); 
     arr = (JSONArray)j; 
    }catch(Exception ex){ 
     Log.v("TEST","Exception: " + ex.getMessage()); 
    } 

    for(int i = 0; i < arr.length(); i++) { 
      JSONObject t = (JSONObject) arr.get(i); 
      Tweet tweet = new Tweet(
      t.get("from_user").toString(), 
      t.get("text").toString(), 
      t.get("profile_image_url").toString() 
      ); 
      tweets.add(tweet); 
     } 

    return tweets; 
} 

をまたはコードが

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

    ArrayList<Tweet> tweets = null; 
    try { 
     tweets = getTweets("android", 1); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    ListView listView = (ListView) findViewById(R.id.ListViewId); 
    listView.setAdapter(new UserItemAdapter(this, R.layout.info_layout, tweets)); 
} 

public class UserItemAdapter extends ArrayAdapter<Tweet> { 
    private ArrayList<Tweet> tweets; 

    public UserItemAdapter(Context context, int textViewResourceId, ArrayList<Tweet> tweets) { 
     super(context, textViewResourceId, tweets); 
     this.tweets = tweets; 
    } 
を初期化するときDDMSで

Iは、これらのエラーコンパイル得る:

3月23日16:14:02.253:E/AndroidRuntime(215):キャッチされないハンドラ:キャッチされない例外により、メイン射出スレッド

03-23 16:14:02.263:E/AndroidRuntime(215):java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.uwe.bus/com.uwe.bus.InfoActivity}: java.lang。 NullPointerExceptionが

3月23日16:14:02.263:E/AndroidRuntime(215):android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)で

3月23日16:14:02.263:E/AndroidRuntime(215):android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)

03-23 16:14:02.263:E/AndroidRuntime(215):android.app.ActivityThread.access $ 2200 (ActivityThread.java:119)

3月23日16:14:02.263:E/AndroidRuntime(215):android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1863)で

3月23日16:14:02.263:E/AndroidRuntime(215):android.os.Handler.dispatchMessage(Handler.java:99) 03-23 16:14:02.263:E/AndroidRuntime(215):android.os.Looper.loop(Looper.java) :123)

3月23日16:14:02.263:E/AndroidRuntime(215):android.app.ActivityThread.main(ActivityThread.java:4363)で

3月23日16:14:02.263 :E/AndroidRuntime(215):java.lang.reflect.Method.invokeNative(ネイティブメソッド)

3月23日16:14:02.263:E/AndroidRuntime(215):java.lang.reflect.Method.invoke(Method.java:521)で

3月23日16:14:02.263: E/AndroidRuntime(215):com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:860)

03-23 16:14:02.263:E/AndroidRuntime(215):原因:java.lang.NullPointerExceptionが 3月23日16:14:02.263:E/AndroidRuntime(215):com.uwe.bus.InfoActivity.getTweets(InfoActivity.java:133)

3月23日午後04時14分で:02.263:E/AndroidRuntime(215):com.uwe.bus.InfoActivity.onCreate(InfoActivit y.java:39)

3月23日16:14:02.263:E/AndroidRuntime(215):android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

3月23日16時: 14:02.263:E/AndroidRuntime(215):android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)

03-23 16:14:02.263:E/AndroidRuntime(215):...11以上

ライン39:

ArrayList<tweet> tweets = null; 
try { 
tweets = getTweets("android", 1); 
} catch (JSONException e) { 
// TODO Auto-generated catch block 
e.printStackTrace(); 
} 

ライン133:

for(int i = 0; i < arr.length(); i++) { 
JSONObject t = (JSONObject) arr.get(i); 
Tweet tweet = new Tweet(
t.get("from_user").toString(), 
t.get("text").toString(), 
t.get("profile_image_url").toString() 
); 
tweets.add(tweet); 
} 

それはたManifest.xmlから来ているように、最初のエラーが見えますが、マニフェストがきれいなので、私は得ることはありませんそれ。

それとも誰もがちょうどアンドロイドでツイートを表示する簡単な方法を知っているん...

答えて

0

ループのためのそれはあなたのarr変数がインスタンス化されていない

ライン133で、nullの場合

関連する問題