標籤:
private class AppAdapter extends BaseAdapter { @Override public int getCount() { // TODO Auto-generated method stub return userApp.size()+sysApp.size()+2; } @Override public Object getItem(int arg0) { // TODO Auto-generated method stub return arg0; } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return arg0; } @Override public View getView(int position, View arg1, ViewGroup arg2) { AppInfo app ; //判斷當前位置是不是第一個,如果是返回出去一個textview if (position==0) { TextView tv = new TextView(AppManagerActivity.this); tv.setText("使用者程式("+userApp.size()+")"); tv.setTextColor(Color.WHITE); return tv; //判斷當前位置是不是用來顯示下一個textview的位置,就是使用者程式集合+1 }else if(position==userApp.size()+1){ TextView tv = new TextView(AppManagerActivity.this); tv.setText("系統程式("+sysApp.size()+")"); tv.setTextColor(Color.WHITE); return tv; //判斷位置是不是用來顯示使用者程式的位置 }else if(position<=userApp.size()){ app = userApp.get(position-1); //最後就是用來顯示系統程式的位置 }else{ app = sysApp.get(position-userApp.size()-2); } View v = null; ViewHolder viewHolder = null; //進行校正,緩衝必須是linearlayout的子類, if (arg1 != null&&arg1 instanceof LinearLayout) { v = arg1; viewHolder = (ViewHolder) v.getTag(); } else { v = View.inflate(AppManagerActivity.this, R.layout.item_app_show, null); viewHolder = new ViewHolder(); viewHolder.tv_name = (TextView) v .findViewById(R.id.app_item_tv_name); viewHolder.tv_location = (TextView) v .findViewById(R.id.app_item_tv_location); viewHolder.img_icon = (ImageView) v .findViewById(R.id.app_item_img_icon); // 對應關係一致 v.setTag(viewHolder); } viewHolder.img_icon.setImageDrawable(app.getIcon()); viewHolder.tv_name.setText(app.getName()); if (app.isRow()) { viewHolder.tv_location.setText("內部儲存程式"); } else { viewHolder.tv_location.setText("外部儲存程式"); } return v; } } static class ViewHolder { ImageView img_icon; TextView tv_name; TextView tv_location; }
android項目複雜的listview