zoukankan      html  css  js  c++  java
  • listview刷新数据,滑到底部就会更新数据,解析本地数据,用for循环赋值

    滑到低不就会有更新,不同于Xlistview,这个用法非常的简单:

    activity.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" 
        android:background="#df2"
        >
    
       <ListView 
           android:id="@+id/lv"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           ></ListView>
    
    </RelativeLayout>

    一个简单的listview就可以实现:

    MainActiivyt.class

    package com.example.day6_listview_more;

    import java.util.ArrayList;
    import java.util.List;

    import android.os.Bundle;
    import android.app.Activity;
    import android.view.Menu;
    import android.view.ViewTreeObserver.OnScrollChangedListener;
    import android.widget.AbsListView;
    import android.widget.AbsListView.OnScrollListener;
    import android.widget.ArrayAdapter;
    import android.widget.ListView;
    import android.widget.Toast;
    //继承OnScrollListener以实现滑动刷新
    public class MainActivity extends Activity implements OnScrollListener{

        private ListView lv;
        //反省是String
        private ArrayAdapter<String> adapter=null;
        //保存数据
        private List<String> data=null;
        //判断是否加载更多
        private boolean isload=false;
        //新数据的次数
        int count=1;
        
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            lv=(ListView) findViewById(R.id.lv);
            data=new ArrayList<String>();
            initData("第一页");
            adapter=new ArrayAdapter<String>(getApplicationContext(), R.layout.listitem,data);
            lv.setAdapter(adapter);
            lv.setOnScrollListener(this);
            
        }
    //listview在没有华东的时候的状态
        private void initData(String param) {
            // TODO Auto-generated method stub
            for(int i=0;i<30;i++){
                data.add(param+"  daaaaaa"+i);
            }
        }

        

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
            // TODO Auto-generated method stub
            //让listview得以刷新
            isload=((firstVisibleItem+visibleItemCount)==totalItemCount);
            
        }

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            // TODO Auto-generated method stub
            if(isload&&scrollState==OnScrollListener.SCROLL_STATE_IDLE){//滚动事件结束
                //滚动事件结束是开始触发新事件
                Toast.makeText(getApplicationContext(), "开始加载数据", 1).show();
                initData("web"+count);
                count++;
                adapter.notifyDataSetChanged();
            }
        }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // TODO Auto-generated method stub
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }
    }

    适配器里面用到的布局:

    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:text="aaa">
        
        
    
    </TextView>
  • 相关阅读:
    go包之logrus显示日志文件与行号
    linux几种快速清空文件内容的方法
    (转)CSS3之pointer-events(屏蔽鼠标事件)属性说明
    Linux下source命令详解
    控制台操作mysql常用命令
    解决beego中同时开启http和https时,https端口占用问题
    有关亚马逊云的使用链接收集
    favicon.ico--网站标题小图片二三事
    js获取url协议、url, 端口号等信息路由信息
    (转) Golang的单引号、双引号与反引号
  • 原文地址:https://www.cnblogs.com/123p/p/5386661.html
Copyright © 2011-2022 走看看