ListView分頁加載

/////////////////////////////   Activity   ////////////////////////////////////////

public class MainActivity extends Activity {

Context context;
private ListView listView;
private List<String> list;
int p=0;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=this;
init();
}


private void init() {
listView = (ListView) findViewById(R.id.listView);
//獲得第一頁數據
list=setData(p);
//創建ArrayAdapter適配器
adapter = new ArrayAdapter<String>(context, android.R.layout.simple_list_item_1,list);
//給ListView設置適配器
listView.setAdapter(adapter);
//給ListView設置滾動監聽
listView.setOnScrollListener(new OnScrollListener() {

@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
// TODO Auto-generated method stub

}

@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
if((firstVisibleItem+visibleItemCount)==totalItemCount){
p++;
Toast.makeText(context, "加載第"+p+"頁", 0).show();
//獲得第p頁數據
ArrayList<String> data = setData(p);
//追加到list集合中
list.addAll(data);
//更新適配器
adapter.notifyDataSetChanged();
}

}
});

}
/**       設置數據           */
private ArrayList<String> setData(int a) {
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<20;i++){
list.add(a+"呵呵"+i);
}
return list;
}

}

/////////////////////////////   activity_main   ////////////////////////////////////////

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >


    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />


</RelativeLayout>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章