80,351
社区成员
发帖
与我相关
我的任务
分享
package R.M.activity;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import R.M.R;
import R.M.adapter.rmAdapter;
import android.app.ExpandableListActivity;
import android.os.Bundle;
public class MainActivity extends ExpandableListActivity {
/** Called when the activity is first created. */
String rootpath = "/";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
File root = new File(rootpath);
File[] files = root.listFiles();
List<File[]> child = new ArrayList<File[]>();
for(File file : files) {
child.add(file.listFiles());
}
setListAdapter(new rmAdapter(files, child, this));
}
}
package R.M.adapter;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import R.M.R;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.ExpandableListView;
import android.widget.TextView;
/**
* @author yubin
* @version 2012-4-10 下午07:37:49
**/
public class rmAdapter extends BaseExpandableListAdapter {
File[] parentfiles = new File[1];
List<File[]> childlist = new ArrayList<File[]>();
Context context;
LayoutInflater inflater;
public rmAdapter(File[] p, List<File[]> c, Context con) {
parentfiles = p;
childlist = c;
context = con;
}
@Override
public File getChild(int groupPosition, int childPosition) {
return childlist.get(groupPosition)[childPosition];
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition) {
return childlist.get(groupPosition) != null ? childlist
.get(groupPosition).length : 0;
}
@Override
public File getGroup(int groupPosition) {
return parentfiles[groupPosition];
}
@Override
public int getGroupCount() {
return parentfiles.length;
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.parent, null);
parentitem p = new parentitem();
p.tvp = (TextView) convertView.findViewById(R.id.tvparent);
p.tvp.setText(parentfiles[groupPosition].getName());
return convertView;
}
class parentitem {
TextView tvp;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
if(childlist.get(groupPosition)[childPosition].isDirectory()) {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.childfile, null);
ExpandableListView elv = (ExpandableListView) convertView
.findViewById(R.id.elvmain);
File[] parentfile = childlist.get(groupPosition)[childPosition]
.listFiles();
List<File[]> childfile = new ArrayList<File[]>();
for(File file : parentfile) {
childfile.add(file.listFiles());
}
elv.setAdapter(new rmAdapter(parentfile, childfile, context));
}
else {
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.child, null);
parentitem p = new parentitem();
p.tvp = (TextView) convertView.findViewById(R.id.tvchild);
p.tvp.setText(childlist.get(groupPosition)[childPosition].getName());
}
return convertView;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff">
<ExpandableListView
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fadingEdge="none">
</ExpandableListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="40dip">
<ExpandableListView
android:id="@+id/elvmain"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fadingEdge="none">
</ExpandableListView>
</LinearLayout>
</LinearLayout>