私は単純に特定のハッシュタグからすべてのつぶやきを取得し、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から来ているように、最初のエラーが見えますが、マニフェストがきれいなので、私は得ることはありませんそれ。
それとも誰もがちょうどアンドロイドでツイートを表示する簡単な方法を知っているん...