Step1

src/jp.co.example.pracetice/TweetTimeLinelTask.javaを新規作成します。
  1. src/jp.co.example.practiceを右クリックし、新規→クラスを選択
  2. 次の様に入力し、完了を押下

Step2

次の内容に修正してください。
public class TweetTimeLinelTask extends AsyncTask<String, Void, QueryResult> {
	private static final String TAG = "TweetTimeLinelTask";
	private Timer mUpdateListViewTimer;
	private ProgressBar mProgressBar;
	private static long mSinceId = -1;
	private static MainActivity mActivity;
	private LinkedList<Tweet> mCacheTweets = new LinkedList<Tweet>();
	private ListView mListView;
	private LinkedList<Tweet> mTweets;
	private TweetAdapter mAdapter;
	private Handler mTimeLineHandler = new Handler();
	// tweetリストビューへの更新処理
	private Runnable mTimeLineRunnable = new Runnable() {
		@Override
		public void run() {
			if (mCacheTweets.size() > 0) {
				// スクロール中は、リストの更新を行わない
				if (scrollInMiddle()) {
					return;
				}
				Tweet tweet = mCacheTweets.removeLast();
				mTweets.add(0, tweet);
				if (mTweets.size() > Constant.SIZE_PER_PAGE) {
					mTweets.removeLast();
				}
				mAdapter.notifyDataSetChanged();
			} else {
				// tweetが0件だった場合は、リスト更新タイマーをキャンセルする
				mUpdateListViewTimer.cancel();
				mActivity.setmHasUpdateListViewTimer(false);
			}
		}

		private boolean scrollInMiddle() {
			int firstVisiblePosition = mListView.getFirstVisiblePosition();
			int lastVisiblePosition = mListView.getLastVisiblePosition();
			int count = mAdapter.getCount();
			return count > 0
					&& firstVisiblePosition != 0
					&& (lastVisiblePosition != count - 1 || count != Constant.SIZE_PER_PAGE);
		}
	};

	public TweetTimeLinelTask() {
	}

	public TweetTimeLinelTask(MainActivity activity) {
		mActivity = activity;
		mProgressBar = activity.getmProgressBar();
		mListView = activity.getmListView();
		mAdapter = activity.getmAdapter();
		mTweets = activity.getmTweets();
		mUpdateListViewTimer = activity.getmUpdateListViewTimer();
	}

	@Override
	protected void onPreExecute() {
		// プログレスバーを表示させる
		mProgressBar.setVisibility(View.VISIBLE);
	}

	@Override
	protected QueryResult doInBackground(String... params) {
		QueryResult result;
		try {
			// tweeter4jを利用し、特定のハッシュタグがついたtweetを取得する
			Query query = new Query(params[0]);
			query.setPage(1);
			if (mSinceId != -1 && mSinceId != 0) {
				query.setSinceId(mSinceId);
			}
			query.setRpp(Constant.SIZE_PER_PAGE);
			result = new TwitterManager().search(query);
		} catch (TwitterException e) {
			Log.d(TAG, "error", e);
			result = null;
		}
		return result;
	}

	@Override
	protected void onPostExecute(QueryResult result) {
		// プログレスバーを非表示にする
		mProgressBar.setVisibility(View.GONE);
		if (result == null) {
			if (mActivity.isFinishing() && mActivity.isCurrent()) {
				mActivity.showDialog(Constant.ALERT_DIALOG_NET_WARNING);
			}
		} else {
			List<Tweet> newTweets = result.getTweets();
			mSinceId = result.getMaxId();
			mCacheTweets.addAll(0, newTweets);
			if (!mActivity.ismHasUpdateListViewTimer()) {
				// tweetリスト更新タスクをセットする
				mUpdateListViewTimer = new Timer();
				TimerTask task = new TimerTask() {
					@Override
					public void run() {
						mTimeLineHandler.post(mTimeLineRunnable);
					}
				};
				mUpdateListViewTimer.schedule(task, 0,
						Constant.SHOW_TIMELINE_IN_LISTVIEW);
				mActivity.setmHasUpdateListViewTimer(true);
			}
		}
		mActivity.setIsFirstLoading(false);
	}
}

このページへのコメント

A couple of things to note in relation to both devices, they are not designed for abuse, be gentle plus careful, lastly both have pretty awful sun rays eligibility; they become mirrors in direct sunlight <a href=http://myguaranteedpaydayloansuk.tripod.co.uk/>fast payday loans inc</a> <a href="http://myguaranteedpaydayloansuk.tripod.co.uk/">http://www.daythatchangedmylife.co.uk/</a> It is only unplaned in fantastic circumstances and certainly shouldn't be thought of as an effective way associated with avoiding a one-off payment http://myguaranteedpaydayloansuk.tripod.co.uk/

0
Posted by viecumperee 2014年02月01日(土) 22:51:03 返信

6aSExO <a href="http://jdudfbekwegl.com/">jdudfbekwegl</a>, [url=http://crfjrmoctaeo.com/]crfjrmoctaeo[/url], [link=http://pvkpkhlojexp.com/]pvkpkhlojexp[/link], http://uwduvrwvsgsv.com/

0
Posted by xcvvnryxuj 2014年01月27日(月) 10:11:48 返信

Understand what the requirements are for services because you don't have proof of employment?, <a href="http://www.daythatchangedmylife.co.uk/">uk payday loans online</a>, [url=http://www.daythatchangedmylife.co.uk/]uk payday loans online[/url], vjxy, <a href="http://www.qwerpaydayloans.co.uk/">payday loan lenders online</a>, [url=http://www.qwerpaydayloans.co.uk/]payday loan lenders online[/url], zsv,

0
Posted by Cialnzxd 2014年01月27日(月) 06:35:54 返信

uCP7M8 <a href="http://excoobquetzs.com/">excoobquetzs</a>, [url=http://rxuhnarpjwhw.com/]rxuhnarpjwhw[/url], [link=http://hpjeypzlhwcz.com/]hpjeypzlhwcz[/link], http://vytvmcgogmcn.com/

0
Posted by dhltpbchsk 2013年11月14日(木) 10:28:30 返信

abend vitruvius agfa

0
Posted by says 2013年10月03日(木) 06:48:28
http://download.hyperionics.hypercam.2.1.softwaren...
返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

管理人/副管理人のみ編集できます