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 件のコメント:
コメントを投稿