Fragment数据传递与数据回显

来源:互联网 发布:godaddy 1美元域名 编辑:程序博客网 时间:2024/06/05 10:30

http://blog.csdn.net/a254830856/article/details/51569425

实现效果:当滑动ListView列表最底端时,动态的添加新的列表项

 

实现步骤:

调用ListView的setOnScrollListener()方法设置滑动监听器,实现OnScrollListener接口的方法

判断当列表滑动到最低端时,加载新的列表项

 

接口OnScrollListener

 

onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)

view 报告滑动状态的视图

firstVisibleItem 可视的第一个列表项的索引

visibleItemCount 可视的列表项个数

totalItemCount 总共的列表项个数

 

onScrollStateChanged(AbsListView view, int scrollState)

view 报告滑动状态的视图

scrollState 滑动状态

 

滑动状态

SCROLL_STATE_IDLE : 0  视图没有滑动

SCROLL_STATE_TOUCH_SCROLL : 1  用户正在触摸滑动,手指仍在屏幕上

SCROLL_STATE_FLING : 2  用户之前触摸滑动,现在正在滑行,直到停止

 

示例代码:

 

Java代码  收藏代码
  1. package dyingbleed.iteye;  
  2.   
  3. import android.app.ListActivity;  
  4. import android.os.Bundle;  
  5. import android.os.Handler;  
  6. import android.os.Message;  
  7. import android.view.Gravity;  
  8. import android.view.LayoutInflater;  
  9. import android.view.View;  
  10. import android.view.ViewGroup;  
  11. import android.widget.AbsListView;  
  12. import android.widget.BaseAdapter;  
  13. import android.widget.ListView;  
  14. import android.widget.TextView;  
  15.   
  16. public class Main extends ListActivity {  
  17.       
  18.     private ListView listView;  
  19.     private MyListViewAdapter adapter;  
  20.       
  21.     private int scrollState;  
  22.       
  23.     private View footerView;  
  24.       
  25.     @Override  
  26.     public void onCreate(Bundle savedInstanceState) {  
  27.         super.onCreate(savedInstanceState);  
  28.         setContentView(R.layout.main);  
  29.           
  30.         listView = getListView();  
  31.           
  32.         footerView = LayoutInflater.from(this).inflate(R.layout.progress, null);  
  33.                   
  34.         listView.addFooterView(footerView); //在ListView底部添加正在加载视图    
  35.         //注意:addFooterView方法需要在调用setListAdapter方法前调用!  
  36.         adapter = new MyListViewAdapter();  
  37.         setListAdapter(adapter);  
  38.         getListView().setOnScrollListener(new AbsListView.OnScrollListener() {  
  39.               
  40.             @Override  
  41.             public void onScrollStateChanged(AbsListView view, int scrollState) {  
  42.                 Main.this.scrollState = scrollState;  
  43.             }  
  44.               
  45.             @Override  
  46.             public void onScroll(AbsListView view, int firstVisibleItem,  
  47.                     int visibleItemCount, int totalItemCount) {  
  48.                 int lastVisibleItem = firstVisibleItem + visibleItemCount - 1//可视的最后一个列表项的索引  
  49.                 /* 
  50.                  * 当列表正处于滑动状态且滑动到列表底部时,执行 
  51.                  * */  
  52.                 if(Main.this.scrollState != AbsListView.OnScrollListener.SCROLL_STATE_IDLE  
  53.                         && lastVisibleItem == totalItemCount - 1) {  
  54.                     /* 
  55.                      * 执行线程,睡眠5秒钟后添加10个列表项 
  56.                      * */  
  57.                     new Thread() {  
  58.                           
  59.                         private Handler handler = new Handler() {  
  60.   
  61.                             @Override  
  62.                             public void handleMessage(Message msg) {  
  63.                                 super.handleMessage(msg);  
  64.                                 adapter.count += 10;  
  65.                                 adapter.notifyDataSetChanged();  
  66.                             }  
  67.                               
  68.                         };  
  69.   
  70.                         @Override  
  71.                         public void run() {  
  72.                             super.run();  
  73.                             try {  
  74.                                 sleep(5000);  
  75.                                 handler.sendEmptyMessage(0);  
  76.                             } catch (InterruptedException e) {  
  77.                                 e.printStackTrace();  
  78.                             }  
  79.                         }  
  80.                           
  81.                     }.start();  
  82.                       
  83.                 }  
  84.             }  
  85.         });  
  86.     }  
  87.       
  88.     private class MyListViewAdapter extends BaseAdapter {  
  89.           
  90.         int count = 50//初始列表项数量  
  91.   
  92.         @Override  
  93.         public int getCount() {  
  94.             return count;  
  95.         }  
  96.   
  97.         @Override  
  98.         public Object getItem(int position) {  
  99.             return position;  
  100.         }  
  101.   
  102.         @Override  
  103.         public long getItemId(int position) {  
  104.             return position;  
  105.         }  
  106.   
  107.         @Override  
  108.         public View getView(int position, View convertView, ViewGroup parent) {  
  109.             TextView result = (TextView) convertView;  
  110.             if(result == null) {  
  111.                 result = new TextView(Main.this);  
  112.                 result.setTextAppearance(Main.this, android.R.style.TextAppearance_Large);  
  113.                 AbsListView.LayoutParams layoutParams = new AbsListView.LayoutParams(AbsListView.LayoutParams.FILL_PARENT,  
  114.                         AbsListView.LayoutParams.WRAP_CONTENT);  
  115.                 result.setLayoutParams(layoutParams);  
  116.                 result.setGravity(Gravity.CENTER);  
  117.             }  
  118.             result.setText("Item "+(position+1));  
  119.             return result;  
  120.         }  
  121.           
  122.     }  
  123. }  
 

运行结果

 

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 破腹产9天刀口痒怎么办 破腹产7天刀口痒怎么办 剖腹产8天伤口痒怎么办 刨腹产9天刀口痒怎么办 破腹产8天刀口痒怎么办 二胎刀口1.1mm薄怎么办 土豪养成记2闪退怎么办 爱上不该爱的人怎么办? 有妇之夫爱上我,怎么办 全身起疙瘩很痒怎么办 怀孕了肚子很痛怎么办 月经来肚子疼的厉害怎么办 孕妇9个月肚子疼怎么办 斗鱼身上长白点怎么办 8个月宝宝肚子疼怎么办 1岁半宝宝肚子痛怎么办 3岁宝宝肚子疼怎么办啊 吃的太辣肚子疼怎么办 2岁半宝宝肚子疼怎么办 2岁宝宝肚子痛哭怎么办 怀孕3个月拉肚子怎么办 一岁宝宝消化不良拉肚子怎么办 后背长好多痘痘怎么办 身上起疹子很痒怎么办 背上长好多痘痘怎么办 月经两三个月不来怎么办 来月经很少是褐色的怎么办 例假一天就没了怎么办 月经来一天就没了怎么办 假体隆胸8年怀孕怎么办 1岁宝宝长湿疹怎么办 2017卓达破产后怎么办 8岁儿童反复发烧怎么办 工商年报报错了怎么办 买房契税票丢了怎么办 合同地址写错了怎么办 货物被海关扣了怎么办 货被海关扣了怎么办 发票领用薄丢了怎么办 开票税率开错了怎么办 开错税率过月了怎么办