)); map.put("info", files[i].getPath()); if (files[i].isDirectory()) // 按不同类型显示不同图标 map.put("img", R.drawable.ex_folder); else map.put("img", R.drawable.ex_doc); list.add(map); } } return list; }
// 响应用户点击列表项的事件 @Override protected void onListItemClick(ListView l, View v, int position, long id) { Log.d("MyListView4-click", (String) mData.get(position).get("info")); if ((Integer) mData.get(position).get("img") == R.drawable.ex_folder) { mDir = (String) mData.get(position).get("info"); mData = getData(); //点击目录时进入子目录 MyAdapter adapter = new MyAdapter(this); setListAdapter(adapter); } else { // 点击文件时关闭文件管理器,并将选取结果返回 finishWithResult((String) mData.get(position).get("info")); } }
public final class ViewHolder { // 定义每个列表项所含内容 public ImageView img; // 显示图片ID public TextView title; // 文件目录名 public TextView info; // 文件目录描述 }
public class MyAdapter extends BaseAdapter { // 实现列表内容适配器 private LayoutInflater mInflater;
public MyAdapter(Context context) { this.mInflater = LayoutInflater.from(context); }
public int getCount() { // 获取列表项个数 return mData.size(); }
public Object getItem(int arg0) { return null; }
public long getItemId(int arg0) { return 0; }
// 设置每个列表项的显示 public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.listview, null); // 设置列表项的布局 holder.img = (ImageView) convertView.findViewById(R.id.img); holder.title = (TextView) convertView.findViewById(R.id.title); holder.info = (TextView) convertView.findViewById(R.id.info); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.img.setBackgroundResource((Integer) Data.get(position).get( "img")); // 根据位置position设置具体内容 |