Необходимо создать дерево файлов на андройде. Поправьте, если иду не тем путём.
Для этого я использую ExpandableList и его адаптер.
Код стандартный:
Данные отправляю в адаптер и адаптер назначаю элементу ExpandableList.
group.add(new Dirr (0, co2, path2, name2, typ2, chi2));
ExpListAdapter adapter = new ExpListAdapter(0, getActivity().getApplicationContext(), group, true, 0);
listView.setAdapter(adapter);
Код адаптера:
public class ExpListAdapter extends BaseExpandableListAdapter {
private int mi;
private ArrayList<Dirr> mGroups;
private Context mContext;
private int yt=0;
public ExpListAdapter (int idd, Context context, ArrayList<Dirr> group, boolean all, int childid){
mi=idd;
mContext = context;
mGroups = group;
yt=1;
}
@Override
public int getGroupCount() {
return mGroups.get(mi).size();
}
@Override
public int getChildrenCount(int groupPosition) {
return yt;
}
@Override
public Object getGroup(int groupPosition) {
return mGroups.get(mi).getname(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return null;
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded, View convertView,
ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.group_view, null);
}
TextView textGroup = (TextView) convertView.findViewById(R.id.textGroup);
textGroup.setText(mGroups.get(mi).getname(groupPosition));
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
View convertView, ViewGroup parent) {
if (convertView == null) {
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.child_view, null);
}
ExpandableListView listView = (ExpandableListView) convertView.findViewById(R.id.expandableListView2);
ExpListAdapter adapter = new ExpListAdapter(mi, getActivity().getApplicationContext(), mGroups, false, childPosition);
listView.setAdapter(adapter);
return convertView;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
Код group_view и child_view соответственно:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textGroup"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="20dp"
android:textColor="@android:color/white"
android:textStyle="bold"
/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ExpandableListView
android:id="@+id/expandableListView2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:indicatorLeft="250dp"
android:indicatorRight="300dp" >
</ExpandableListView>
</LinearLayout>
Так вот проблема одна - когда разворачивается ExpandableList, то отображается только 1 строка дочернего ExpandableList.
Как сделать, чтобы отображался весь?Либо как сделать дерево файлов с помощью ExpandableList? Какими путями?