• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > BaseAdapter日常的封装,baseadapter封装

BaseAdapter日常的封装,baseadapter封装

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了baseadapter封装,baseadapter,baseadapter详解,baseadapter的用法,android baseadapter等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

BaseAdapter日常的封装,baseadapter封装


我们日常开发中BaseAdapter使用非常的多,大家有没有想过,再进一步封装,将平常使用的对象集合,利用泛型放入集合中,再也不用每次都重写那几个方法了,当然我也提供我的下载地址(https://github.com/androidsihai1/BaseAdapterDemo)

 1 package com.example.administrator.mybaseadapter;
 2 
 3 import android.content.Context;
 4 import android.widget.TextView;
 5 
 6 
 7 
 8 public class MyAdapter extends BaseAdapter {
 9 
10     public MyAdapter(Context context) {
11         super(context);
12     }
13 
14 
15     @Override
16     public int getItemViewType(int position) {
17         return 0;
18     }
19 
20     @Override
21     public int getItemLayoutId(int getItemViewType) {
22         return R.layout.item_layout;
23     }
24 
25     @Override
26     public void handleItem(int itemViewType, int position, Object item, ViewHolder holder, boolean isRecycle) {
27         TextView leftTv = holder.get(R.id.left_tv, TextView.class);
28         TextView righTv = holder.get(R.id.right_tv, TextView.class);
29         Book book = (Book) item;
30         leftTv.setText(book.id + "");
31         righTv.setText(book.name);
32     }
33 
34 
35 }
package com.example.administrator.mybaseadapter;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ListView;

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

public class MainActivity extends AppCompatActivity {

    List<Book> mList = new ArrayList<Book>();
    ListView mLv ;
    BaseAdapter<Book> mAdapter;
    int k = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mLv = findView(R.id.lv);
        for(int i = 0 ; i < 50 ; i++) {
            Book book = new Book();
            k++;
            book.id = k;
            book.name = "name " + k;
            mList.add(book);
        }
        mAdapter = new MyAdapter(this);
        mAdapter.setData(mList);
        mLv.setAdapter(mAdapter);
        mAdapter.notifyDataSetChanged();
    }


    public <T extends View> T findView(int viewId) {
        return  (T)findViewById(viewId);
    }

}
1 package com.example.administrator.mybaseadapter;
2 
3 
4 
5 public class Book {
6    public int id;
7     public String name;
8 }

 

  1 package com.example.administrator.mybaseadapter;
  2 
  3 import android.content.Context;
  4 import android.util.SparseArray;
  5 import android.view.LayoutInflater;
  6 import android.view.View;
  7 import android.view.ViewGroup;
  8 
  9 import java.util.ArrayList;
 10 import java.util.List;
 11 
 12 /**
 13  * Created by pengsihai@yy.com on 2016/11/15.
 14  */
 15 
 16 public abstract class BaseAdapter<T> extends android.widget.BaseAdapter {
 17 
 18     protected Context mContext;
 19     protected List<T> mData = new ArrayList<T>();
 20     LayoutInflater mInflater;
 21 
 22     public BaseAdapter(Context context) {
 23         this.mContext = context;
 24         mInflater = LayoutInflater.from(context);
 25     }
 26 
 27     final public void setData(List<T> list) {
 28         this.mData = list;
 29     }
 30 
 31    final public List<T> getData() {
 32         return mData;
 33     }
 34 
 35 
 36     @Override
 37     final public int getCount() {
 38         return mData.size();
 39     }
 40 
 41     @Override
 42     public T getItem(int i) {
 43         return mData.get(i);
 44     }
 45 
 46     @Override
 47     final public long getItemId(int i) {
 48         return i;
 49     }
 50 
 51     public abstract   int getItemViewType(int position);
 52     public abstract int getItemLayoutId(int getItemViewType);
 53     public abstract void handleItem(int itemViewType , int position , T item , ViewHolder holder , boolean isRecycle);
 54     @Override
 55     public View getView(int position, View view, ViewGroup viewGroup) {
 56         int itemLayoutType 



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • BaseAdapter日常的封装,baseadapter封装

相关文章

  • 2017-05-26Handler消息传递机制(一)
  • 2017-05-26Android:让WebView支持&lt;input type=”file”…&gt;元素,androidwebview
  • 2017-05-26SwipeRefreshLayout下拉刷新,swiperefreshlayout
  • 2017-05-26Android自定义控件系列案例【四】
  • 2017-05-26开源插件 PullToRefresh: PullToRefreshListView / PullToRefreshGridView 实例详解
  • 2017-05-26msm8909+android5.1.1 由BLSP3改为BLSP1后SPI读写速度慢问题解决
  • 2017-05-26android动画详解四 创建动画浅析
  • 2017-05-26Android 学习1----控件的学习,android1----
  • 2017-05-26SwipeMenuListView框架完全解析,swipemenulistview
  • 2017-05-227.6.1 Socket学习网络基础准备

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于安卓APP的启动界面,安卓APP启动界面
    • 菜鸟新闻2--设置沉浸式状态栏,新闻2--沉浸状态栏
    • GsonFormat插件从配置到使用,gsonformat插件配置
    • Android开发艺术探索学习笔记(十一),android艺术探索
    • Android Studio 2.0下创建jni应用调用本地C函数
    • android 圆角ImageView类,可设置弧度,androidimageview
    • 美女的秘密应用项目源码,秘密项目源码
    • Android 贝塞尔曲线实现QQ拖拽清除效果
    • Android之Pull解析XML,androidpullxml
    • 整理几篇比较好的AndroidUI动画开发文章,几篇androidui

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有