Viewpager and listviews

前端 未结 2 516
清歌不尽
清歌不尽 2021-01-07 13:54

I\'m trying to use viewpager in my app.

I want to create 4 view pages with listviews and every listview only data will change.When app started every page will load o

2条回答
  •  孤城傲影
    2021-01-07 14:14

    Here is one implementation of a ViewPager with different ListView's as pages.

    MainActivity.java

    public class MainActivity extends Activity {
    
        /** Called when the activity is first created. */
    
     private Context mContext;
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            mContext = this;
            setContentView(R.layout.main);
            ListView listview1 = new ListView(mContext);
            ListView listview2 = new ListView(mContext);
            ListView listview3 = new ListView(mContext);
    
            Vector pages = new Vector();
    
            pages.add(listview1);
            pages.add(listview2);
            pages.add(listview3);
    
            ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
            CustomPagerAdapter adapter = new CustomPagerAdapter(mContext,pages);
            vp.setAdapter(adapter);
    
            listview1.setAdapter(new ArrayAdapter(mContext, android.R.layout.simple_list_item_1,new String[]{"A1","B1","C1","D1"}));
            listview2.setAdapter(new ArrayAdapter(mContext, android.R.layout.simple_list_item_1,new String[]{"A2","B2","C2","D2"}));
            listview3.setAdapter(new ArrayAdapter(mContext, android.R.layout.simple_list_item_1,new String[]{"A3","B3","C3","D3"}));
    
        }
    }
    

    CustomPagerAdapter.java

    public class CustomPagerAdapter extends PagerAdapter {
    
     private Context mContext;
     private Vector pages;
    
     public CustomPagerAdapter(Context context, Vector<View> pages) {
      this.mContext=context;
      this.pages=pages;
     }
    
     @Override
     public Object instantiateItem(ViewGroup container, int position) {
      View page = pages.get(position);
      container.addView(page);
      return page;
     }
    
     @Override
     public int getCount() {
      return pages.size();
     }
    
     @Override
     public boolean isViewFromObject(View view, Object object) {
      return view.equals(object);
     }
    
     @Override
     public void destroyItem(ViewGroup container, int position, Object object) {
      container.removeView((View) object);
     }
    
    }
    

    More info here.

提交回复
热议问题