SearchURL 변수에 지정된 검색어에 따라 임의의 트윗을 얻으려고합니다. 그러나 메서드를 실행하면 결과가 반환되지 않습니다. 이 오류는 다음 줄에 발생합니다.Null 포인터 트위터에서 검색 결과를 얻는 중 예외가 발생했습니다.
HttpResponse tweetResponse = tweetClient.execute(tweetGet);
그러나 나는 어떤 문제가 있는지 잘 모릅니다. 정보를 얻고 해독하는 데 모든 것이 올바르게 작동해야합니다. 아무도 아이디어가 없나요? 그것이 도전이라고 생각하십시오.
TextView caption;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pitter_home);
// Create PitterImageFragment
FragmentManager manager = getFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.add(R.id.main_image, new PitterImageFragment());
transaction.commit();
// Create Twitter Caption Reference
caption = (TextView) findViewById(R.id.tweet_caption);
// Create Creation Button
Button button = (Button) findViewById(R.id.creation_button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
FragmentManager manager = getFragmentManager();
Fragment fragment = manager.findFragmentById(R.id.main_image);
((PitterImageFragment) fragment).generateImage();
generateTweet();
}// end onClick method
});
}// end OnCreateMethod
public void generateTweet() {
// Code Taken From: http://mobile.tutsplus.com/tutorials/android/build-a-twitter-search-app-project-setup/
try {
// Calculate what to Search for
String searchURL = "http://search.twitter.com/search.json?q=jedi";
new GetTweets().execute(searchURL);
} catch(Exception e) {
Log.d("CATCH", "Begin Code Error: something went wrong!");
e.printStackTrace();
}// end catch
}// end generateTweet method
protected void setCaption(String tweet) {
caption.setText(tweet);
}// end setCaption method
private class GetTweets extends AsyncTask<String, Void, String> {
protected String doInBackground(String... twitterURL) {
// Get Tweets from the Internet
StringBuilder tweetFeedBuilder = new StringBuilder();
try {
Log.d("LINE WATCH", "entering try statement");
HttpClient tweetClient = new DefaultHttpClient();
Log.d("LINE WATCH", "line 1 completed");
HttpGet tweetGet = new HttpGet();
Log.d("LINE WATCH", "line 2 completed");
Log.d("LINE WATCH", tweetGet.toString());
HttpResponse tweetResponse = tweetClient.execute(tweetGet);
Log.d("LINE WATCH", "line 3 completed");
StatusLine searchStatus = tweetResponse.getStatusLine();
Log.d("LINE WATCH", "line 4 completed");
if (searchStatus.getStatusCode() == 200) {
HttpEntity tweetEntity = tweetResponse.getEntity();
InputStream tweetContent = tweetEntity.getContent();
InputStreamReader tweetInput = new InputStreamReader(tweetContent);
BufferedReader tweetReader = new BufferedReader(tweetInput);
String lineIn;
while ((lineIn = tweetReader.readLine()) != null) {
tweetFeedBuilder.append(lineIn);
}// end while
} else {
Log.d("CATCH", "Get Status Code Error: something went wrong!");
}// end if
} catch(Exception e) {
Log.d("CATCH", "Get Online Data Error: something went wrong!");
e.printStackTrace();
}// end catch
return tweetFeedBuilder.toString();
}// end doInBackground method
protected void onPostExecute(String result) {
// Decode the Results from the Search
ArrayList<String> tweetList = new ArrayList<String>();
try {
JSONObject resultObject = new JSONObject(result.toString());
JSONArray tweetArray = resultObject.getJSONArray("results");
// Walk Through the Returned Tweets
for (int t=0; t<tweetArray.length(); t++) {
JSONObject tweetObject = tweetArray.getJSONObject(t);
tweetList.add(tweetObject.get("text")+"\n\n");
}// end for
} catch (Exception e) {
Log.d("CATCH", "Decode Results Error: something went wrong!");
e.printStackTrace();
}// end catch
//TODO: TweetList size is always zero!?! WHY?
// Select a Random Tweet from the Returned Ones
Log.d("TWEETLIST", "TweetList size = " + tweetList.size());
if (tweetList.size() > 0) {
Random random = new Random();
int number = random.nextInt(tweetList.size());
setCaption(tweetList.get(number));
} else {
setCaption("No Tweets Found!");
}// end if
}// end onPostExecute method
}// end GetTweets class
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_pitter_home, menu);
return true;
}
또는 사람이 다른 방법을 제안 할 수 있다면이 지정된 검색하거나 같은 도움이 될 것 지정된 사용자에 따라 임의의 트윗을 얻기 위해 사용할 수 !
LogCat 오류를 게시하십시오. – Sam