import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
public class AndroidAsyncTaskActivity extends Activity implements OnScrollListener {
private ArrayAdapter<String> adapter;
private AsyncTask<String, Integer, Long> mTask;
private ListView listView;
private View mFooter;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
listView = (ListView) findViewById(R.id.listView1);
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
// アイテムを追加します
for (int i = 1; i < 10; i++) {
adapter.add("Item" + i);
}
mFooter = getLayoutInflater().inflate(R.layout.listview_footer, null);
listView.addFooterView(mFooter);
// アダプターを設定します
listView.setAdapter(adapter);
listView.setOnScrollListener(this);
}
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
// TODO 自動生成されたメソッド・スタブ
if (totalItemCount == firstVisibleItem + visibleItemCount) {
Log.d("TAG", "末尾");//
additionalReading();
}
}
private void additionalReading() {
// TODO 自動生成されたメソッド・スタブ
// 既に読み込み中ならスキップ
if (mTask != null && mTask.getStatus() == AsyncTask.Status.RUNNING) {
Log.d("", "読み込み中");
return;
}
mTask = new MyAsyncTask(this).execute("text");
}
public class MyAsyncTask extends AsyncTask<String, Integer, Long> {
public MyAsyncTask(AndroidAsyncTaskActivity androidAsyncTaskActivity) {
}
protected Long doInBackground(String... params) {
Log.d("", "doInBackground ::" + params[0]);// doInBackground
try {
Thread.sleep(2000);//確認のために2秒止める
} catch (InterruptedException e) {
// TODO 自動生成された catch ブロック
e.printStackTrace();
}
return 999L;
}
@Override
protected void onPostExecute(Long result) {
Log.d("", "onPostExecute :: " + result);// doInBackground のリターン
//データ追加
for (int n = 0; n < 10; n++) {
adapter.add("追加" + n);
}
}
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO 自動生成されたメソッド・スタブ
}
}
2012年7月24日火曜日
ListView追加読み込み:003 SimpleAdapter
関連記事
登録:
コメントの投稿 (Atom)

0 件のコメント:
コメントを投稿