MyAdapter.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:3k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex05_11;
  2. /* import相关class */
  3. import java.io.File;
  4. import java.util.List;
  5. import android.content.Context;
  6. import android.graphics.Bitmap;
  7. import android.graphics.BitmapFactory;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.BaseAdapter;
  12. import android.widget.ImageView;
  13. import android.widget.TextView;
  14. /* 自定义的Adapter,继承android.widget.BaseAdapter */
  15. public class MyAdapter extends BaseAdapter
  16. {
  17.   /* 变量声明 
  18.      mIcon1:回到根目录的图文件
  19.      mIcon2:回到上一层的图档
  20.      mIcon3:文件夹的图文件
  21.      mIcon4:文件的图档
  22.   */
  23.   private LayoutInflater mInflater;
  24.   private Bitmap mIcon1;
  25.   private Bitmap mIcon2;
  26.   private Bitmap mIcon3;
  27.   private Bitmap mIcon4;
  28.   private List<String> items;
  29.   private List<String> paths;
  30.   /* MyAdapter的构造器,传入三个参数  */  
  31.   public MyAdapter(Context context,List<String> it,List<String> pa)
  32.   {
  33.     /* 参数初始化 */
  34.     mInflater = LayoutInflater.from(context);
  35.     items = it;
  36.     paths = pa;
  37.     mIcon1 = BitmapFactory.decodeResource(context.getResources(),
  38.                                           R.drawable.back01);
  39.     mIcon2 = BitmapFactory.decodeResource(context.getResources(),
  40.                                           R.drawable.back02);
  41.     mIcon3 = BitmapFactory.decodeResource(context.getResources(),
  42.                                           R.drawable.folder);
  43.     mIcon4 = BitmapFactory.decodeResource(context.getResources(),
  44.                                           R.drawable.doc);
  45.   }
  46.   
  47.   /* 因继承BaseAdapter,需覆盖以下方法 */
  48.   @Override
  49.   public int getCount()
  50.   {
  51.     return items.size();
  52.   }
  53.   @Override
  54.   public Object getItem(int position)
  55.   {
  56.     return items.get(position);
  57.   }
  58.   
  59.   @Override
  60.   public long getItemId(int position)
  61.   {
  62.     return position;
  63.   }
  64.   
  65.   @Override
  66.   public View getView(int position,View convertView,ViewGroup parent)
  67.   {
  68.     ViewHolder holder;
  69.     
  70.     if(convertView == null)
  71.     {
  72.       /* 使用自定义的file_row作为Layout */
  73.       convertView = mInflater.inflate(R.layout.file_row, null);
  74.       /* 初始化holder的text与icon */
  75.       holder = new ViewHolder();
  76.       holder.text = (TextView) convertView.findViewById(R.id.text);
  77.       holder.icon = (ImageView) convertView.findViewById(R.id.icon);
  78.       
  79.       convertView.setTag(holder);
  80.     }
  81.     else
  82.     {
  83.       holder = (ViewHolder) convertView.getTag();
  84.     }
  85.     File f=new File(paths.get(position).toString());
  86.     /* 设置[回到根目录]的文字与icon */
  87.     if(items.get(position).toString().equals("b1"))
  88.     {
  89.       holder.text.setText("Back to /");
  90.       holder.icon.setImageBitmap(mIcon1);
  91.     }
  92.     /* 设置[回到上一层]的文字与icon */
  93.     else if(items.get(position).toString().equals("b2"))
  94.     {
  95.       holder.text.setText("Back to ..");
  96.       holder.icon.setImageBitmap(mIcon2);
  97.     }
  98.     /* 设置[文件或文件夹]的文字与icon */
  99.     else
  100.     {
  101.       holder.text.setText(f.getName());
  102.       if(f.isDirectory())
  103.       {
  104.         holder.icon.setImageBitmap(mIcon3);
  105.       }
  106.       else
  107.       {
  108.         holder.icon.setImageBitmap(mIcon4);
  109.       }
  110.     }
  111.     return convertView;
  112.   }
  113.   /* class ViewHolder */
  114.   private class ViewHolder
  115.   {
  116.     TextView text;
  117.     ImageView icon;
  118.   }
  119. }