目前情况下怎么设计代码比较优雅(android)?

原来的项目里有好多listview,为此为每个listview都单独写了adapter和item,现在设计改设计了,要求每个listview都能和微信通讯录一样有sortbar和分类栏,那么我原来的做法是给每个item上面添加上一个隐藏的分类栏,然后再adapter中选择要不要显示,但是现在listview太多了,这样效率很低,我要怎么设计代码才能方便的达到这个需求?

直接将 数据按照字母排序A_z,然后item分为两类 标题类型 和数据类型

适配器在判断数据的字母变化时,加入一个标题类型,用这种思路去做。github有很多这种demo,自己去找下

重新封装一个BaseListView

自己的风格最优雅 图片说明


public abstract class MyBaseAdapter<T> extends BaseAdapter {
    public List<T> list;
    public Context context;


    public MyBaseAdapter() {
    }

    public MyBaseAdapter(Context context, List<T> list) {
        super();
        this.context = context;
        this.list = list;
    }

    @Override
    public int getCount() {
        return list.size();
    }

    @Override
    public Object getItem(int position) {
        return list.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return createView(position, convertView, parent);
    }

    public abstract View createView(int position, View convertView,
            ViewGroup parent);

}

重新封装一个自己的BaseAdapter就会好点

首先将数据按照字母顺序A-Z进行排序,得到List数据。listview的item布局为标题和内容,标题即为内容的首字母。在通常情况下为标题为隐藏状态,只有当在过渡节点下,才会显示字母标题