Android(安卓)ListView 和 BaseAdapter 的使用
16lz
2021-01-24
private ArrayList<HashMap<String, Object>> getDate(){025ArrayList<HashMap<String, Object>> listItem = new ArrayList<HashMap<String,Object>>();026/**为动态数组添加数据*/027for(int i=0;i<30;i++)028{029HashMap<String, Object> map = new HashMap<String, Object>();030map.put("ItemTitle", "第"+i+"行");031map.put("ItemText", "这是第"+i+"行");032listItem.add(map);033}034return listItem;035}036/** 新建一个类继承BaseAdapter,实现视图与数据的绑定037*/038privateclass MyAdapter extends BaseAdapter {039private LayoutInflater mInflater;//得到一个LayoutInfalter对象用来导入布局040041/**构造函数*/042public MyAdapter(Context context) {043this.mInflater = LayoutInflater.from(context);044}045046@Override047publicint getCount() {048return getDate().size();//返回数组的长度049}050051@Override052public Object getItem(int position) {053returnnull;054}055056@Override057publiclong getItemId(int position) {058return 0;059}060061/**书中详细解释该方法*/062@Override063public View getView(finalint position, View convertView, ViewGroup parent) {064ViewHolder holder;065//观察convertView随ListView滚动情况066Log.v("MyListViewBase", "getView " + position + " " + convertView);067if (convertView == null) {068convertView = mInflater.inflate(R.layout.item,null);069holder = new ViewHolder();070/**得到各个控件的对象*/071holder.title = (TextView) convertView.findViewById(R.id.ItemTitle);072holder.text = (TextView) convertView.findViewById(R.id.ItemText);073holder.bt = (Button) convertView.findViewById(R.id.ItemButton);074convertView.setTag(holder);//绑定ViewHolder对象075}076else{077holder = (ViewHolder)convertView.getTag();//取出ViewHolder对象078}079/**设置TextView显示的内容,即我们存放在动态数组中的数据*/080holder.title.setText(getDate().get(position).get("ItemTitle").toString());081holder.text.setText(getDate().get(position).get("ItemText").toString());082083/**为Button添加点击事件*/084holder.bt.setOnClickListener(new OnClickListener() {085@Override086publicvoid onClick(View v) {087Log.v("MyListViewBase", "你点击了按钮" + position);//打印Button的点击信息088}089});090091return convertView;092}093094}095096/**存放控件*/097publicfinalclass ViewHolder{098public TextView title;099public TextView text;100public Button bt;101}102}
更多相关文章
- Android控件开发之四----ListView(4)
- Android中几种数据结构使用
- android Spinner和数值选择器使用demo
- android 输入对话框 确认对话框
- Android(安卓)G711A 音频编解码,去除“吱吱”电流声,附上so下载地
- Android(安卓)使用RecyclerView的方法
- [置顶] Android(安卓)IPC 通讯机制源码分析【下】
- Android(安卓)Wifi --自动连接指定SSID(各种加密方式均可)
- Android(安卓)更新获取 请求头 Rxjava+Retrofit2 响应头(Headers