zoukankan      html  css  js  c++  java
  • 针对BaseAdapter的扩展

    针对BaseAdapter可以有一些扩展,比如在一行中加入几个元素如下图所示。

    为了完成上面的内容,需要在布局文件中加入一个布局文件R.layout.listview_item,这个布局文件中描述了要显示的内容。

    自定义MyAdapter来继承BaseAdapter。

    必须要覆写getCount() 和getView()方法。

    关键代码:

    public View getView(final int position, View convertView, ViewGroup parent) {
    //List中的一条数据
    DataModel item;

    //设置布局中内容与数据的对应关系,通过ID进行设置
    if (convertView == null) {
    item
    = new DataModel();
    convertView
    = inflater.inflate(R.layout.listview_item, null);
    item.setImView((ImageView) convertView.findViewById(R.id.listview_image));
    item.setCheckBox((CheckBox) convertView.findViewById(R.id.listview_checkbox));
    item.setText((TextView) convertView.findViewById(R.id.listview_text));

    convertView.setTag(item);
    }
    else {
    item
    = (DataModel) convertView.getTag();
    }

    //设置数据
    if (position % 2 == 0) {
    item.getCheckBox().setChecked(
    true);
    }
    else {
    item.getCheckBox().setChecked(
    false);
    }
    item.getCheckBox().setOnClickListener(
    new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    Toast.makeText(context, datas.get(position).getText(), Toast.LENGTH_SHORT).show();
    }
    });
    item.getImView().setImageDrawable(getResources().getDrawable(datas.get(position).getImageId()));
    item.getText().setText(datas.get(position).getText());

    return convertView;
    }

      

  • 相关阅读:
    使用ViewPager实现三个fragment切换
    handler
    Android 源码解析之AsyncTask
    android的生命周期
    安卓在SQLiteOpenHelper类进行版本升级和降级
    安卓ListView操作的两种方法
    表格布局TableLayout
    线性布局和相对布局
    遇到tomcat端口被占用问题解决方案
    easyUI笔记09.03
  • 原文地址:https://www.cnblogs.com/xitang/p/2175330.html
Copyright © 2011-2022 走看看