做出的效果是QQ好友分组+ListView分组
实现代码如下:
有三个XML文件:
<ExpandableListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/res_layout_ExpandableListView"
></ExpandableListView>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/res_layout_list"
></ListView>
<android.support.v4.view.ViewPager android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/res_main_ViewPager" > </android.support.v4.view.ViewPager>
三个Java文件:
public class activity_ViewPage3 extends AppCompatActivity { private ViewPager res_main_viewPager; private List<View> list=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_view_page3); res_main_viewPager = (ViewPager) findViewById(R.id.res_main_ViewPager); LocalActivityManager lam=new LocalActivityManager(this,true); lam.dispatchCreate(savedInstanceState); Intent it1=new Intent(this,MainActivty2.class); list.add(lam.startActivity("1",it1).getDecorView()); Intent it2=new Intent(this,MainActivty3.class); list.add(lam.startActivity("1",it2).getDecorView()); res_main_viewPager.setAdapter(new MyAdapter()); } class MyAdapter extends PagerAdapter{ @Override public int getCount() { return list.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public Object instantiateItem(ViewGroup container, int position) { View view = list.get(position); container.addView(view); return view; } @Override public void destroyItem(ViewGroup container, int position, Object object) { // super.destroyItem(container, position, object); View v= list.get(position); container.removeView(v); } }
public class MainActivty2 extends Activity { private ListView res_layout_list; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activty3_mian); res_layout_list = (ListView) findViewById(R.id.res_layout_list); String[] list= new String[10]; for (int i = 0; i <list.length ; i++) { list[i]="尹"+i+"样"; } my m=new my<String>(this,android.R.layout.simple_list_item_1,list,new String[]{"浩0","浩4","浩7"}); res_layout_list.setAdapter(m); } class my<T> extends ArrayAdapter { private List<T> object=new ArrayList<>(); private List<T> pam=new ArrayList<>(); public my(@NonNull Context context, @LayoutRes int resource,Object[] object,Object[] pam) { super(context, resource,object); for (int i = 0; i <object.length ; i++) { this.object.add((T) object[i]); } for (int i = 0; i <pam.length ; i++) { this.pam.add((T) pam[i]); } } @Override public boolean isEnabled(int position) { if(pam.contains(object.get(position))){ return false; } return super.isEnabled(position); } }
public class MainActivty3 extends Activity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activty4_main);
ExpandableListView res_layout_ExpandableListView= (ExpandableListView) findViewById(R.id.res_layout_ExpandableListView);
List<Map<String,Object>> list=new ArrayList<>();
List<List<Map<String,Object>>> l=new ArrayList<>();
for (int i = 0; i <4 ; i++) {
Map<String,Object> map=new HashMap<>();
map.put("text","组名:"+i);
list.add(map);
List<Map<String,Object>> ll=new ArrayList<>();
for (int j = 0; j <5 ; j++) {
Map<String,Object> map2=new HashMap<>();
map2.put("text2",i+"组第"+j+"个");
ll.add(map2);
}
l.add(ll);
}
SimpleExpandableListAdapter sel=new SimpleExpandableListAdapter(this,list,android.R.layout.simple_list_item_1,new String[]{"text"},
new int[]{android.R.id.text1},l,android.R.layout.simple_list_item_1,new String[]{"text2"},new int[]{android.R.id.text1});
res_layout_ExpandableListView.setAdapter(sel);
}