public abstract class BaseSetupActivity extends Activity {
private GestureDetector gestureDetector; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); //2,创建手势管理的对象,用作管理在onTouchEvent(event)传递过来的手势动作
gestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener(){
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
//监听手势的移动
if(e1.getX()-e2.getX()>0){
//调用子类的下一页方法,抽象方法 //在第一个界面上的时候,跳转到第二个界面
//在第二个界面上的时候,跳转到第三个界面
//.......
showNextPage();
} if(e1.getX()-e2.getX()<0){
//调用子类的上一页方法
//在第一个界面上的时候,无响应,空实现
//在第二个界面上的时候,跳转到第1个界面
//.......
showPrePage();
} return super.onFling(e1, e2, velocityX, velocityY);
}
});
} //1,监听屏幕上响应的事件类型(按下(1次),移动(多次),抬起(1次))
@Override
public boolean onTouchEvent(MotionEvent event) {
//3,通过手势处理类,接收多种类型的事件,用作处理
gestureDetector.onTouchEvent(event);
return super.onTouchEvent(event);
} //下一页的抽象方法,由子类决定具体跳转到那个界面
protected abstract void showNextPage();
//上一页的抽象方法,由子类决定具体跳转到那个界面
protected abstract void showPrePage(); //点击下一页按钮的时候,根据子类的showNextPage方法做相应跳转
public void nextPage(View view){
showNextPage();
} //点击上一页按钮的时候,根据子类的showPrePage方法做相应跳转
public void prePage(View view){
showPrePage();
}
}

Setup2Activity.java

@Override
protected void showNextPage() { String serialNumber = SpUtil.getString(this, ConstantValue.SIM_NUMBER, "");
if(!TextUtils.isEmpty(serialNumber)){
Intent intent = new Intent(getApplicationContext(), Setup3Activity.class);
startActivity(intent); finish(); overridePendingTransition(R.anim.next_in_anim, R.anim.next_out_anim);
}else{
ToastUtil.show(this,"请绑定sim卡");
} } @Override
protected void showPrePage() { Intent intent = new Intent(getApplicationContext(), Setup1Activity.class);
startActivity(intent); finish(); overridePendingTransition(R.anim.pre_in_anim, R.anim.pre_out_anim); }

手势抽取过程&代码复用的更多相关文章

  1. -1-2 java 面向对象基本概念 封装继承多态 变量 this super static 静态变量 匿名对象 值传递 初始化过程 代码块 final关键字 抽象类 接口 区别 多态 包 访问权限 内部类 匿名内部类 == 与 equal

    java是纯粹的面向对象的语言 也就是万事万物皆是对象 程序是对象的集合,他们通过发送消息来相互通信 每个对象都有自己的由其他的对象所构建的存储,也就是对象可以包含对象 每个对象都有它的类型  也就是 ...

  2. python面向对象入门(1):从代码复用开始

    本文从代码复用的角度一步一步演示如何从python普通代码进化到面向对象,并通过代码去解释一些面向对象的理论.所以,本文前面的内容都是非面向对象的语法实现方式,只有在最结尾才给出了面向对象的简单语法介 ...

  3. javascript代码复用模式(二)

    前面说到,javascript的代码复用模式,可分为类式继承和非类式继承(现代继承).这篇就继续类式继承. 类式继承模式-借用构造函数 使用借用构造函数的方法,可以从子构造函数得到父构造函数传任意数量 ...

  4. Rust 中的继承与代码复用

    在学习Rust过程中突然想到怎么实现继承,特别是用于代码复用的继承,于是在网上查了查,发现不是那么简单的. C++的继承 首先看看c++中是如何做的. 例如要做一个场景结点的Node类和一个Sprit ...

  5. 初涉JavaScript模式 (13) : 代码复用 【上】

    引子 博客断了一段时间,不是不写,一是没时间,二是觉得自己沉淀不够,经过一段时间的学习和实战,今天来总结下一个老生常谈的东西: 代码复用. 为何复用 JS门槛低,故很多人以为写几个特效就会JS,其实真 ...

  6. Perl面向对象(1):从代码复用开始

    官方手册:http://perldoc.perl.org/perlobj.html 本系列: Perl面向对象(1):从代码复用开始 Perl面向对象(2):对象 Perl面向对象(3):解构--对象 ...

  7. Python__函数和代码复用

    主要内容 函数的定义和使用 实例:七段数码管的绘制 代码复用与函数递归 PyInstall库的使用 实例:科赫雪花小包裹 函数的定义与使用 函数的理解与定义 函数的使用及调用过程 函数的参数传递 函数 ...

  8. 深入理解JavaScript系列(46):代码复用模式(推荐篇)

    介绍 本文介绍的四种代码复用模式都是最佳实践,推荐大家在编程的过程中使用. 模式1:原型继承 原型继承是让父对象作为子对象的原型,从而达到继承的目的: function object(o) { fun ...

  9. Python-函数和代码复用

    函数的定义与使用 >函数的理解与定义 函数是一段代码的表示 -函数是一段具有特定功能的.可重用的语句组 -函数是一种功能的抽象,一般函数表达特定功能 -两个作用:降低编程难度 和 代码复用 de ...

随机推荐

  1. ansible使用笔记

    ansible使用笔记 介绍 ansible 是一个模型驱动的配置管理器,支持多节点发布.远程任务执行.默认使用 SSH 进行远程连接.无需在被管理节点上安装附加软件,可使用各种编程语言进行扩展.an ...

  2. idea使用心得(1)-快捷键用法

    快捷键: Ctrl+F12,可以显示当前文件的结构,Alt+7,可在左侧生成固定框体控件,适合类复杂的情况 Ctrl+Alt+O,优化导入的类和包 Ctrl+X,删除行 删除光标所在的哪一行,对尤其是 ...

  3. Linux上F上传文件到FTP服务器

    Linux上上传跟Windows上上传不一样,在Windows上测试没问题,但是放到Linux服务器上跑,上传的文件中文显示乱码.解决方案: FtpUtil.java红色标记处 package cn. ...

  4. Magento 自定义一个搜索功能

    最近工作中有一个需求是需要做一个搜索的功能,但是因为需要定制一些外观,所以就不用传统的方法来继承基类GRID.实现这个需求的核心其实就是下面这个方法. $this->getLayout()-&g ...

  5. HAL驱动库学习-SPI

    如何使用SPI库1 声明SPI hanlde, 例如: SPI_HandleTypeDef hspi2 通过实现HAL_SPI_MspInit()函数初始化底层资源 以下两个必须进行初始化 a 使能s ...

  6. C++学习笔记(1)——数据类型占空间大小

    boolean bool 1 byte   character char 1 byte May be signed or unsigned   wchar_t 1 byte     char16_t ...

  7. sql join 优化

    项目查询列表,需要新关联一张表,于是就让组下小伙更改了下sql语句,当再次进入列表查询时查询时间一下子就翻倍.那小伙找了半天没找原因. 于是我就打开代码查看,关联的一张表数据非常多,用的left jo ...

  8. z/OS上Dataset 的移动

    最近的一个需求,需要把大批量的Dataset移到新的Storage Class,新的Volume中去,刚开始感觉非常头疼.仔细研究后发现这个事情其实很简单.确实符合别人所说,事情的在你真正开始努力之后 ...

  9. Windows便笺 快捷键

    便笺快捷键 便笺快捷键多数与Office相同 Ctrl+N 新建 Alt+F4 关闭便笺,下次打开内容还在 Ctrl+D 删除 Ctrl+E 居中 Ctrl+R 右对齐 Ctrl+L 左对齐 Ctrl ...

  10. python核心编程学习记录之函数与函数式编程

    @func function 意思是func(function) @func(a) function 意思是func(a)这是个函数对象,在去调用function函数 如果要传额外的值,只传值用*tu ...