实现思路:在Activity或者Fragment中先实现一个父ListView,然后在父ListView的adapter中实现子ListView。
MainActivity:
public class MainActivity extends AppCompatActivity {
Parent_Adapter adapter;
List<ParentData> parentDatas = new ArrayList<>();
private ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
parentDatas = Read.readParentData(this);
adapter = new Parent_Adapter(this, R.layout.parent_list_item, parentDatas);
listView = (ListView) findViewById(R.id.Parent_listView);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
if(Parent_Adapter.mParentItem == position && Parent_Adapter.mShowChild){
Parent_Adapter.mShowChild = false;
}else{
Parent_Adapter.mShowChild = true;
}
Parent_Adapter.mParentItem = position;
adapter.notifyDataSetChanged();
}
});
}
}
父Adapter:
public class Parent_Adapter extends ArrayAdapter<ParentData> {
private int resourceId;
public static int mParentItem = -1;
public static boolean mShowChild = false;
List<ChildData> childDatas = new ArrayList<>();
List<ParentData> parentDatas = new</