package misc.demo;import java.util.ArrayList;import android.app.ActivityGroup;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.Window;public class MainActivity extends ActivityGroup {
private View oneView;
private View twoView;
private View threeView;
private ArrayList<View> views;
private ViewPager mViewPager;//多页面滑动切换效果/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
views = new ArrayList<View>();
mViewPager = (ViewPager)findViewById(R.id.main_viewpager);
mViewPager.setOnPageChangeListener(null);
initView();
addViews();PagerAdapter mPagerAdapter = new PagerAdapter() {@Override
public boolean isViewFromObject(View arg0, Object arg1) {
return arg0 == arg1;
}@Override
public int getCount() {
return views.size();
}@Override
public void destroyItem(View container, int position, Object object) {
((ViewPager)container).removeView(views.get(position));
}@Override
public Object instantiateItem(View container, int position) {
((ViewPager)container).addView(views.get(position));
return views.get(position);
}
};mViewPager.setAdapter(mPagerAdapter);
}/**
* 将相应的Activity转换成View对象
*/
public void initView(){
oneView=getViews(OneActivity.class,"one");
twoView=getViews(TwoActivity.class,"one");
threeView=getViews(ThreeActivity.class,"one");
}/**
* 将转换成View后的Activity添加到列表中
*/
public void addViews(){views.add(oneView);
views.add(twoView);
views.add(threeView);
}
/**
* 获取要跳转的Activity对应的View
* @param cls目的Activity
* @param pageid目的Activity的唯一id
* @return 返回一个View类型的变量
*/
public View getViews(Class<?> cls,String pageid){
return getLocalActivityManager().startActivity(pageid, new Intent(MainActivity.this,cls).addFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)).getDecorView();
}
}