listview分页效果
来源:互联网 发布:webshell提权工具包 编辑:程序博客网 时间:2024/05/29 10:22
一般情况下,如果要加载的数据比较多,直接加载出来所有的数据是一个很笨而且用户体验会很差的方式。listview的分页便可处理每次加载部分数据以提高用户体验。
实现代码如下:首先需要创建三个XML layout文件,分别是activity_main.xml,button.xml,textview.xml,分别是主界面,放置在listview下方的一个界面(只有一个按钮button),listview中的显示界面。另外Java文件有两个,一个是mainActivity,一个是listviewAdapter.java。
activity_main.xml文件:
<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="wrap_content" > </ListView></RelativeLayout>button.xml文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/btn" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="loadMore" android:text="加载更多"/></LinearLayout>
textview.xml文件:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/tv" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="200sp" android:gravity="center" /></LinearLayout>
ListviewAdapter.java文件:
package com.example.morelistview;import java.util.List;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class ListviewAdapter extends BaseAdapter {private List<String> items;private LayoutInflater inflater;public ListviewAdapter(Context context,List<String> items){this.items = items;inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);}@Overridepublic int getCount() {return items.size();}@Overridepublic Object getItem(int position) {return items.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if(convertView == null){convertView = inflater.inflate(R.layout.textview, null);}TextView text = (TextView) convertView.findViewById(R.id.tv);text.setText(items.get(position));return convertView;}/** * 添加项 * @param item */public void addItem(String item){items.add(item);}}MainActivity文件:
package com.example.morelistview;import java.util.ArrayList;import android.os.Bundle;import android.os.Handler;import android.util.Log;import android.view.View;import android.widget.AbsListView;import android.widget.AbsListView.OnScrollListener;import android.widget.Button;import android.widget.ListView;import android.widget.Toast;import android.app.Activity;public class MainActivity extends Activity implements OnScrollListener {private ListView listview;private int visiblelastIndex = 0;// 最后的可视索引项private int visibleItemCount; // 当前窗口可见项总数private ListviewAdapter adapter;private View loadMoreView;private Button loadMoreButton;private Handler handler = new Handler();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);loadMoreView = getLayoutInflater().inflate(R.layout.button, null);loadMoreButton = (Button) loadMoreView.findViewById(R.id.btn);listview = (ListView) findViewById(R.id.listview);listview.addFooterView(loadMoreView);//设置列表底部视图,在listview下方放置的界面,一个按钮initAdapter();listview.setAdapter(adapter);}/** * 初始化适配器 */private void initAdapter() {ArrayList<String> items = new ArrayList<String>();for (int i = 1; i < 10; i++) {items.add(String.valueOf(i));}adapter = new ListviewAdapter(this, items);}/** * 加载更多的响应 * @param view */public void loadMore(View view) {loadMoreButton.setText("正在加载...");//这一部分是效果,延迟2秒显示//handler.postDelayed(new Runnable() {////@Override//public void run() {//loadData();//adapter.notifyDataSetChanged();////listview.setSelection(visiblelastIndex - visibleItemCount + 1);//loadMoreButton.setText("加载更多");//}//}, 2000);loadData();adapter.notifyDataSetChanged();//loadMoreButton.setText("加载更多");}/** * 加载数据 */private void loadData() {int count = adapter.getCount();for (int i = count; i < count + 10; i++) {adapter.addItem(String.valueOf(i + 1));}}}
0 0
- listview分页效果
- ListView 分页效果
- [Android UI界面] 怎样实现ListView分页效果?
- listview实现分页效果(底部正在加载样式)
- Android中Listview实现分页加载效果OnScrollListener
- Android控件之ListView详解及实现分页效果
- Listview分页
- ListView分页
- listView分页
- ListView分页
- listview分页
- listview分页
- ListView分页
- ListView分页
- ListView分页
- ListView分页
- ListView分页
- listview分页
- Windows命令行编译C++程序
- Struts2中的拦截器与过滤器
- 'mvc:annotation-driven' must have no character or element问题
- 关于getParameter拿到的字符串编码
- [IOS]UISlider
- listview分页效果
- 并行计算简介和多核CPU编程Demo
- SQL-server登陆
- tiny6410开机自启动QT4程序,并设置程序为全屏显示
- Android移动应用界面的模板化设计
- 在linux中添加多ftp用户和设置密码
- dialog的详细使用
- 物联网智能家居的发展
- iphone 字符串转换积累中