main.xml如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<
RelativeLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
xmlns:tools
=
"http://schemas.android.com/tools"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<
ListView
android:id
=
"@+id/listView"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:layout_centerInParent
=
"true"
/>
</
RelativeLayout
>
|
listviewitem.mxl如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
RelativeLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<
TextView
android:id
=
"@+id/textView"
android:layout_width
=
"fill_parent"
android:gravity
=
"center"
android:layout_height
=
"80dip"
/>
</
RelativeLayout
>
|
MainActivity如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
import
java.util.ArrayList;
import
java.util.HashMap;
import
android.app.Activity;
import
android.os.Bundle;
import
android.view.View;
import
android.widget.AbsListView;
import
android.widget.AbsListView.OnScrollListener;
import
android.widget.ListView;
import
android.widget.SimpleAdapter;
public
class
MainActivity
extends
Activity {
private
ListView mListView;
private
SimpleAdapter mSimpleAdapter;
private
HashMap<String, Object> mHashMap;
private
ArrayList<HashMap<String, Object>> mArrayList;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private
void
init(){
mListView=(ListView) findViewById(R.id.listView);
mArrayList=
new
ArrayList<HashMap<String,Object>>();
addDataForListView();
mSimpleAdapter=
new
SimpleAdapter
(MainActivity.
this
, mArrayList, R.layout.listviewitem,
new
String []{
"id"
},
new
int
[]{R.id.textView});
mListView.setAdapter(mSimpleAdapter);
mListView.setOnScrollListener(
new
OnScrollListenerImple());
}
private
void
addDataForListView(){
System.out.println(
"====>Add data to ListView"
);
for
(
int
i =
0
; i <
10
; i++) {
mHashMap=
new
HashMap<String, Object>();
mHashMap.put(
"id"
,
""
+i);
mArrayList.add(mHashMap);
}
}
private
class
OnScrollListenerImple
implements
OnScrollListener{
@Override
public
void
onScroll(AbsListView listView,
int
firstVisibleItem,
int
visibleItemCount,
int
totalItemCount) {
int
lastItem = firstVisibleItem + visibleItemCount;
if
(lastItem == totalItemCount) {
System.out.println(
"Scroll to the listview last item"
);
View lastItemView=(View) listView.getChildAt(listView.getChildCount()-
1
);
if
((listView.getBottom())==lastItemView.getBottom()) {
System.out.println(
"========Scroll to the listview bottom ============="
);
addDataForListView();
mSimpleAdapter.notifyDataSetChanged();
}
}
}
@Override
public
void
onScrollStateChanged(AbsListView listview,
int
scrollState) {
}
}
}
|