[List13.java]
public class List13 extends ListActivity implements ListView.OnScrollListener {
private TextView mStatus;
private boolean mBusy = false;
private class SlowAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public SlowAdapter(Context context) {
mContext = context;
mInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
public int getCount() {
return mStrings.length;
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
TextView text;
if (convertView == null) {
text = (TextView)mInflater.inflate(android.R.layout.simple_list_item_1, parent, false);
} else {
text = (TextView)convertView;
}
if (!mBusy) {
text.setText(mStrings[position]);
text.setTag(null);
} else {
text.setText("Loading...");
text.setTag(this);
}
return text;
}
private Context mContext;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list_13);
mStatus = (TextView) findViewById(R.id.status);
mStatus.setText("Idle");
setListAdapter(new SlowAdapter(this));
getListView().setOnScrollListener(this);
}
public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount,
int totalItemCount) {
}
public void onScrollStateChanged(AbsListView view, int scrollState) {
switch (scrollState) {
case OnScrollListener.SCROLL_STATE_IDLE:
mBusy = false;
int first = view.getFirstVisiblePosition();
int count = view.getChildCount();
for (int i=0; i<count; i++) {
TextView t = (TextView)view.getChildAt(i);
if (t.getTag() != null) {
t.setText(mStrings[first + i]);
t.setTag(null);
}
}
mStatus.setText("Idle");
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
mBusy = true;
mStatus.setText("Touch scroll");
break;
case OnScrollListener.SCROLL_STATE_FLING:
mBusy = true;
mStatus.setText("Fling");
break;
}
}
private String[] mStrings = {
"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam",
"Zanetti Grana Padano", "Zanetti Parmigiano Reggiano"};
}
[list_13.xml]
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<ListView android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>
<TextView android:id="@+id/status"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="8dip"
android:paddingRight="8dip"/>
</LinearLayout>
'old > API_Demo' 카테고리의 다른 글
Views_ProgressBar_Incremental (0) | 2010.05.06 |
---|---|
Views_Lists_Efficient Adapter (0) | 2010.04.27 |
Views_Lists_Transcript (0) | 2010.04.27 |
Views_Lists_Multiple choice list (0) | 2010.04.27 |
Views_Lists_Single choice list (0) | 2010.04.27 |