@SuppressWarnings("deprecation")
public class ViewPagerActivity extends Activity {
private ViewPager mViewPager;
private LocalActivityManager lam;
private List
pagerList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_pager);
lam = new LocalActivityManager(this, true);
lam.dispatchCreate(savedInstanceState);// 必须被调用,不然Activity不能被转成View
mViewPager = (ViewPager) findViewById(R.id.pager);
// 将滑动的Activity转成View对象
initActivities();
}
private void initActivities() {
pagerList = new ArrayList
();
Intent pager1Intent = new Intent(this, Pager1Activity.class);
View pager1View = lam.startActivity("Pager1Activity", pager1Intent).getDecorView();
pagerList.add(pager1View);
Intent pager2Intent = new Intent(this, Pager2Activity.class);
View pager2View = lam.startActivity("Pager2Activity", pager2Intent).getDecorView();
pagerList.add(pager2View);
MyPagerAdapter adapter=new MyPagerAdapter();
mViewPager.setAdapter(adapter);
}
private class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return pagerList.size();
}
/**
* 判断当前view是不是来自object
*/
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}
/**
* item被销毁的时候
*/
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
ViewPager viewPager=(ViewPager) container;
View view=pagerList.get(position);
viewPager.removeView(view);
}
/**
* item被生成的时候
*/
@Override
public Object instantiateItem(ViewGroup container, int position) {
ViewPager viewPager = (ViewPager) container;
View view = pagerList.get(position);
viewPager.addView(view);
return view;
}
}
}
view_pager.xml布局文件:
Pager1Activity:
package com.example.androidutils;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Pager1Activity extends Activity {
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pager1);
text = (TextView) findViewById(R.id.text);
text.setText("This is pager1");
}
}
Pager2Activity:
package com.example.androidutils;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Pager2Activity extends Activity {
private TextView text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pager1);
text = (TextView) findViewById(R.id.text);
text.setText("This is pager2");
}
}