您的位置:首页 > 其它

mBaseAdapter的二次封装(增加索引判断)

2017-02-23 17:54 330 查看
不多说!!!!附代码!!!

package mylib;

import android.content.Context;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

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

/**
* Created by 15331 on 2016/11/8.
*/
public abstract class MyBaseAdapter<T> extends android.widget.BaseAdapter {
private List<T> list;
private int selected = -1;   //当前选中的item
protected Context context;

public MyBaseAdapter(Context context) {
init(context, new ArrayList<T>());
}

public MyBaseAdapter(Context context, List<T> list) {
init(context, list);
}

private void init(Context context, List<T> list) {
this.list = list;
this.context = context;
}
public void selectItem(int i) {
this.selected = i;
notifyDataSetChanged();
}

public int getSelected() {
return selected;
}

public List<T> getList() {
return list;
}

public void setList(List<T> list) {
this.list = list;
}

public void clear() {
this.list.clear();
notifyDataSetChanged();
}

public void addAll(List<T> list) {
if (list != null) {
this.list.addAll(list);
notifyDataSetChanged();
}
}

@Override
public int getCount() {
return list == null ? 0 : list.size();
}

@Override
public T 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) {
if (null == convertView) {
convertView = inflate(getContentView());
}
onInitView(convertView, position);
return convertView;
}

/** 加载布局 */
private View inflate(int layoutResID) {
LayoutInflater layoutInflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = layoutInflater.inflate(layoutResID, null);
return view;
}

public abstract int getContentView();

public abstract void onInitView(View view, int position);

/**
*
* @param view
*            converView
* @param id
*            控件的id
* @return 返回<T extends View>
*/
@SuppressWarnings("unchecked")
protected <E extends View> E get(View view, int id) {
SparseArray<View> viewHolder = (SparseArray<View>) view.getTag();
if (null == viewHolder) {
viewHolder = new SparseArray<View>();
view.setTag(viewHolder);
}
View childView = viewHolder.get(id);
if (null == childView) {
childView = view.findViewById(id);
viewHolder.put(id, childView);

}
return (E) childView;
}
}

adapter = new MyBaseAdapter<LYPrepaymentDetail>(getActivity(), list) {
@Override
public int getContentView() {
return R.layout.zhichu_listviewitem;
}

@Override
public void onInitView(View view, int position) {

ly= (LinearLayout) view.findViewById(R.id.zhichu_item_ly);

if (adapter.getSelected() == position) {
ly.setBackgroundColor(getResources().getColor(R.color.blueone));

} else {
ly.setBackgroundColor(getResources().getColor(R.color.white));

}
}
};
lv.setAdapter(adapter);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: