android listview 分页显示 android ListView分页展示

转载
2024-04-18 10:03
716
大家好,我是云百科的客服小柏,我来为大家解答以上问题。android,listview,分页显示,android,ListView分页展示很多人还不知道,现在让我们一起来看看吧!解答1、新建一个机器

大家好,我是云百科的客服小柏,我来为大家解答以上问题。android,listview,分页显示,android,ListView分页展示很多人还不知道,现在让我们一起来看看吧!

解答:

1、新建一个机器人项目,名称为ListViewAutoPage,其他参数可以自己配置,点击完成

2、首先在布局文件夹下声明listviewinfo.xml,作为列表视图的主要样式。其内容如下:

3、?可扩展标记语言版本='1.0 '编码='utf-8 '?

4、线性布局xmlns : Android=' https://模式。安卓。' com/apk/RES/Android '

5、Android : layout _ width=' fill _ parent '

6、Android : layout _ height=' fill _ parent '

7、Android :方向='垂直'

8、列表视图

9、Android : id=' @ id/listview info '

10、Android : layout _ width=' fill _ parent '

11、Android : layout _ height=' wrap _ content '

12、/列表视图

13、/线性布局

14、声明列表中各个选项的信息展示,listITem.xml定义在布局文件夹下,其内容如下:

15、?可扩展标记语言版本='1.0 '编码='utf-8 '?

16、线性布局xmlns : Android=' https://模式。安卓。' com/apk/RES/Android '

17、Android :方向='垂直'

18、Android : layout _ width=' fill _ parent '

19、Android : layout _ height=' fill _ parent '

20、带边框的

21、android:id='@ id/listItem '

22、Android : layout _ width=' fill _ parent '

23、Android : layout _ height=' fill _ parent '

24、android:gravity重力重力='中心'

25、android:paddingTop='10dp '

26、Android : padding bottom=' 10dp '/

27、/线性布局

28、设置"加载更多"按钮的样式文件,loadmore.xml。其内容是:

29、?可扩展标记语言版本='1.0 '编码='utf-8 '?

30、线性布局xmlns : Android=' https://模式。安卓。' com/apk/RES/Android '

31、Android :方向='垂直'

32、Android : layout _ width=' fill _ parent '

33、Android : layout _ height=' fill _ parent '

34、纽扣

35、android:id='@ id/moreButton '

36、Android : layout _ width=' fill _ parent '

37、Android : layout _ height=' wrap _ content '

38、android:text='加载更多' /

39、/线性布局

40、自定义适配器的实现ListViewAutoAdapter继承基本适配器,其实现如下:

41、公共类ListViewAutoAdapter扩展基本适配器{

42、//定义结果集

43、私有静态映射整数,查看结果

44、 private List<String> items;

45、 private LayoutInflater inflater; //布局信息

46、 //构造函数,参数初始化

47、 public ListViewAutoAdapter(List<String> items, Context context) {

48、 super();

49、 this.items = items;

50、 this.inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);

51、 }

52、@Override

53、public int getCount() {

54、// TODO Auto-generated method stub

55、return items.size();

56、}

57、@Override

58、public Object getItem(int position) {

59、// TODO Auto-generated method stub

60、return items.get(position);

61、}

62、@Override

63、public long getItemId(int position) {

64、// TODO Auto-generated method stub

65、return position;

66、}

67、@Override

68、public View getView(int position, View contentView, ViewGroup arg2) {

69、// TODO Auto-generated method stub

70、//从数组中获取元素,如果view为空,则填充相应文本信息

71、contentView=result.get(position);

72、 if(contentView==null){

73、 contentView=inflater.inflate(R.layout.listitem, null);

74、 //找到TextView ,进行文本赋值

75、 TextView text=(TextView) contentView.findViewById(R.id.listItem);

76、 //设置文本显示的内容

77、 text.setText(items.get(position));

78、 }

79、 result.put(position, contentView);

80、 return contentView;

81、}

82、public void addItem(String item) {

83、 items.add(item);

84、 }

85、}

86、ListViewAutoPageShow主体函数实现:

87、public void onCreate(Bundle savedInstanceState) {

88、 super.onCreate(savedInstanceState);

89、 setContentView(R.layout.listviewinfo);

90、 //控件初始化

91、 loadMoreView = getLayoutInflater().inflate(R.layout.loadmore, null);

92、 moreButton = (Button) loadMoreView.findViewById(R.id.moreButton);

93、 moreButton.setonClickListener(new onClickListener() {

94、

95、 @Override

96、 public void onClick(View v) {

97、 // TODO Auto-generated method stub

98、 moreButton.setText("正在加载..."); //设置按钮文字loading

99、 //执行加载数据的线程

100、 handler.postDelayed(new Runnable() {

101、 @Override

102、 public void run() {

103、

104、 loadData();

105、

106、 adapter.notifyDataSetChanged(); //数据集变化后,通知adapter

107、 // listView.setSelection(visibleLastIndex - visibleItemCount + 1); //设置选中项

108、

109、 moreButton.setText("加载更多"); //恢复按钮文字

110、 }

111、 }, 1000);

112、 }

113、 });

114、

115、 listView = (ListView) this.findViewById(R.id.listViewInfo);

116、

117、 listView.addFooterView(loadMoreView); //设置列表底部视图

118、 //初始化数据适配器

119、 initAdapter();

120、 listView.setAdapter(adapter); //自动为id是list的ListView设置适配器

121、 listView.setonScrollListener(this); //添加滑动监听

122、 //按钮被选中的时候 触发的操作

123、 listView.setonItemClickListener(new onItemClickListener() {

124、@Override

125、public void onItemClick(AdapterView<?> arg0, View arg1, int position,

126、long arg3) {

127、// TODO Auto-generated method stub

128、//展示列表被选中的结果

129、Toast.makeText(getApplicationContext(), items.get(position),Toast.LENGTH_SHORT).show();

130、}

131、 });

132、 }

133、

136、 private void initAdapter() {

137、

138、 for (int i = 0; i < 10; i++) {

139、 items.add("第"+String.valueOf(i + 1)+"个选项");

140、 }

141、 adapter = new ListViewAutoAdapter(items,this);

142、 }

143、@Override

144、public void onScroll(AbsListView view, int firstVisibleItem,

145、int visibleItemCount, int totalItemCount) {

146、// TODO Auto-generated method stub

147、

148、}

149、@Override

150、public void onScrollStateChanged(AbsListView view, int scrollState) {

151、// TODO Auto-generated method stub

152、

153、 if (scrollState == OnScrollListener.SCROLL_STATE_IDLE ) {

154、 //如果是自动加载,可以在这里放置异步加载数据的代码

155、 Log.i("LOADMORE", "loading...");

156、 }

157、}

158、

161、 private void loadData() {

162、 int count = adapter.getCount();

163、 for (int i = count; i < count + 10; i++) {

164、 adapter.addItem("第"+String.valueOf(i + 1)+"个选项");

165、 }

166、 }

167、程序书写完毕之后,开始运行程序,观察实验结果

本文到此讲解完毕了,希望对大家有帮助。


评论区
登录 发表评论