【android】实现手指滑动来切换activity


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 ();
}
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值