zoukankan      html  css  js  c++  java
  • ListView 一维排布 动态滑动添加新item代码

        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            lv = (ListView)findViewById(R.id.listView);
            datalist = new ArrayList<Map<String,Object>>();
            //1.新建适配器
            //2.适配器加载数据源
            /*
            各个参数含义
            context:上下文
            data:数据源 (List<Map<String,object>>)多个Map所组成的List集合
                    每一个Map都对应ListView列表中的一行
                    每一个Map(键-值对)中的键必须包含所有在from中所指定的键
            resource:列表项的布局的文件ID
            from:   Map中的键名
            to:     绑定数据视图中的ID,与from成对应关系。
             */
             sim_adapter = new SimpleAdapter(this,getDATA(),R.layout.abc,new String[]{"first","second"},new int[]{R.id.pic,R.id.text});
            //3.视图加载适配器
    
            lv.setAdapter(sim_adapter);
    
            lv.setOnItemClickListener(this);
            lv.setOnScrollListener(this);
    
        }
    
        private List<Map<String,Object>> getDATA(){
            for(int i = 0; i< 20 ; i++){
                Map<String , Object> map = new HashMap<String,Object>();
                map.put("first",R.drawable.abc);
                map.put("second", "礼拜" + i);
                datalist.add(map);
    
            }
    
            return datalist;
        }
    
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    
            String text = lv.getItemAtPosition(position)+ "";
    
            //Toast.makeText(上下文,内容,显示时间);
            Toast toast =Toast.makeText(this,"位置="+position+"内容="+text,Toast.LENGTH_SHORT);
            //在屏幕中显示的位置,X轴的相对偏移,Y轴的相对偏移
            toast.setGravity(Gravity.CENTER, 0  , 0);
            //运行展示
            toast.show();
        }
    
        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            switch (scrollState)
            {
                case SCROLL_STATE_FLING:
                    Log.i("Main", "用户在手指离开屏幕,由于用力滑了一下,视图仍依靠惯性继续滑动");
                     Map<String,Object> map = new HashMap<String, Object>();
                    map.put("first",R.drawable.abc);
                    map.put("second","增加项目");
                    datalist.add(map);
                    sim_adapter.notifyDataSetChanged();            //刷新listview
                    break;
                case SCROLL_STATE_IDLE:
                    Log.i("Main","视图已停止滑动");
                    break;
                case SCROLL_STATE_TOUCH_SCROLL:
                    Log.i("Main","手指没有离开屏幕,视图正在滑动");
                    break;
            }
    
        }
    

      

  • 相关阅读:
    第一个自己独立开发并发布的软件
    第一个JavaWeb项目体验
    今天开博
    Mongoid Paging and Iterating Over Large Collections
    图片格式瞎扯淡
    是时候用Coffeescript了
    Mac 小技巧
    印度见闻札记
    作为开发人员,您应该尊重默认行为
    Java 注解(Annoation)学习笔记
  • 原文地址:https://www.cnblogs.com/zmaibbs7/p/4831880.html
Copyright © 2011-2022 走看看