Onresumeは、設定から戻るときに適切に実行されません
質問
私のアプリでは、WiFi接続がない場合、WiFi接続をAlertDialogでオンにし、WiFi設定画面を呼び出します。バックボタンを押すと、MainActivityのOnresume()メソッドに入ると思います。この方法では、ツイートをリロードするLoadTweetsメソッドを呼び出します。これは、あるアクティビティから別のアクティビティにホップするときに機能します。
WiFi設定画面に戻ってヒットすると、デバッガーはOnResumeメソッドになり、LoadTweetsメソッドをループしますが、リロードされたツイートは表示されません。
ここで一歩踏み出しましたか?
onresume()メソッド:
public void onResume(){
super.onResume();
checkWifi();
loadTweets();
}
LoadTweetsメソッド:
private ArrayList<Tweets> loadTweets(){
ArrayList<Tweets> tweets = new ArrayList<Tweets>();
try {
HttpClient hc = new DefaultHttpClient();
HttpGet get = new
HttpGet("http://search.twitter.com/search.json?q=JobXXL_be&rpp=5");
HttpResponse rp = hc.execute(get);
if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
{
String result = EntityUtils.toString(rp.getEntity());
JSONObject root = new JSONObject(result);
JSONArray sessions = root.getJSONArray("results");
for (int i = 0; i < sessions.length(); i++) {
JSONObject session = sessions.getJSONObject(i);
Tweets tweet = new Tweets();
tweet.setTweet(session.getString("text"));
tweet.setUser(session.getString("from_user"));
tweet.setDate(session.getString("created_at").substring(5,16));
tweets.add(tweet);
}
}
} catch (Exception e) {
Log.e("TwitterFeedActivity", "Error loading JSON", e);
}
return tweets;
}
TweetListadapterクラス:
private class TweetListAdaptor extends ArrayAdapter<Tweets> {
private ArrayList<Tweets> tweets;
public TweetListAdaptor(Context context, int textViewResourceId, ArrayList<Tweets> tweets) {
super(context, textViewResourceId, tweets);
this.tweets = loadTweets();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService (Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.tweetitem, null);
}
Tweets o = tweets.get(position);
TextView tt = (TextView) v.findViewById(R.id.TWEET_TEXT);
TextView bt = (TextView) v.findViewById(R.id.TWEET_SCREEN_NAME);
TextView date = (TextView) v.findViewById(R.id.TWEET_CREATED_AT);
tt.setText(o.getTweet());
bt.setText(o.getUser());
date.setText(o.getDate());
return v;
}
public void setTweets(ArrayList<Tweets> tweet){
this.tweets = tweet;
}
}
正しい解決策はありません
所属していません StackOverflow