自定义新建TextView实现listView列表分隔
在ListView的Adapter类中的getView方法下获取到需插入分隔行的位置
该位置可以添加textview、imageview等组件
复写adapter中的isEnabled方法,屏蔽分个组件的点击事件,否则会发生异常
返回item项目时需在getItem方法中做相应业务逻辑处理
private class Page2ListViewAdapter extends BaseAdapter{
private LayoutInflater mILayoutInflater;
public Page2ListViewAdapter(){
mILayoutInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
boolean isdisplaysystem = sp.getBoolean(Const.IS_SHOW_SYSTEM_TASK, true);
if(isdisplaysystem){
return userTasks.size()+systemTasks.size()+2;
}else{
return userTasks.size() + 1;
}
}
@Override
public boolean isEnabled(int position) {
if(position==0){
return false;
}else if(position==userTasks.size()+1){
return false;
}
return super.isEnabled(position);
}
@Override
public Object getItem(int position) {
if(position==0){
return null;
}else if(position<=userTasks.size()){
return userTasks.get(position-1);
}else if(position==userTasks.size()+1){
return null;
}else{
return systemTasks.get(position-userTasks.size()-2);
}
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view=null;
ViewHolder holder=null;
if(position==0){
TextView userText=new TextView(getBaseContext());
userText.setText("流行音乐("+userTasks.size()+")");
userText.setTextSize(20);
userText.setBackgroundColor(Color.GRAY);
return userText;
}else if(position<=userTasks.size()){
//....................列表填充
return view;
}else if(position==userTasks.size()+1){
TextView sysText=new TextView(getBaseContext());
sysText.setText("纯音乐("+systemTasks.size()+")");
sysText.setTextSize(20);
sysText.setBackgroundColor(Color.GRAY);
return sysText;
}else{
//.............................
}
}
/**
* 处理第二页次第二页 listview缓存,利用缓存可以提高listview的性能优化
*/
static class ViewHolder{
ImageView processIcon;
TextView processName;
TextView processMemory;
CheckBox processCheck;
}