初学Android,Listview

主要是SimpleAdapter 的使用

重点是map

实现监听  分别继承 AdapterView.OnItemClickListener, AbsListView.OnScrollListener 

 点击监听,和滚动监听

滚动监听实现下拉刷新要记得通知UI线程


public class MainActivity extends Activity  {


    private ListView listView;
    private SimpleAdapter simpleadapter;
    private List<Map<String, Object>> list;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        listView = (ListView) findViewById(R.id.listView);


        String[] data = new String[]{"java", "C++", "JavaScript", "Php",
                "Python"};


        list = new ArrayList<Map<String, Object>>();
        //新建数据适配器
        //ArrayAdapter(上下文,布局,数据)
        //
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data);


        //SimpleAdapter(上下文,data,resource,from,to)
        //data:特定泛型的集合   List<? extends Map<String,?>> data   一个Map构成的List集合
        //                      每一个Map对应ListView中的一行  每一个map必须包含from中所指定的键
        //resource:列表中布局文件的ID
        //from:记录map中的键名
        //to:绑定视图的ID与From对应
        simpleadapter = new SimpleAdapter(this,getData(),R.layout.list_item,new String[]{"pic","text"},new int[]{R.id.pic,R.id.text});


        listView.setAdapter(simpleadapter);




    }


    private List<Map<String, Object>> getData(){






        Map<String,Object> map= new HashMap<String, Object>();
        map.put("pic",R.drawable.icm);
        map.put("text","Nastul");
        map.put("text1","this is a text ");
        list.add(map);
        map.put("pic",R.drawable.icm);
        map.put("text","Nastul");
        map.put("text1","this is a text ");
        list.add(map);
 
        return list;
    }
}

 @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        //上下文, 打印信息,时长
        Toast.makeText(this,"position"+position, Toast.LENGTH_SHORT).show();
    }


    @Override
    //    ,   i滚动的状态  三种状态
    public void onScrollStateChanged(AbsListView absListView, int i) {
       switch (i){
           case SCROLL_STATE_FLING ://用户滑动时  视图因为惯性继续滑动
               Toast.makeText(this,"继续滑动",Toast.LENGTH_SHORT).show();
               Map<String,Object> map= new HashMap<String, Object>();
               map.put("pic",R.drawable.icm);
               map.put("text","Nastul");
               map.put("text1","this is a text ");
               list.add(map);
               //重要! 重新通知UI线程刷新
               simpleadapter.notifyDataSetChanged();
               break;
           case SCROLL_STATE_IDLE://停止滑动
               Toast.makeText(this,"停止",Toast.LENGTH_SHORT).show();
               break;
           case SCROLL_STATE_TOUCH_SCROLL://正在滑动没有离开屏幕
               Toast.makeText(this,"正在",Toast.LENGTH_SHORT).show();
               break;




       }
    }


    @Override
    public void onScroll(AbsListView absListView, int i, int i2, int i3) {


    }
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值