setContentView

一般切换页面,通过Intent,startActivity可以实现,但系统创建Activity是非常耗时的,如果对切换画面时间有要求,只能用setContentView在同一activity下切换页面,这样做切换快,但会增加程序逻辑控制的难度。在工业产品中,任何一个参数都是参与竞争的筹码,开机时间、画面切换时间等都是重要衡量因素。一般切换页面的时间在150ms以上,用户就会有反应,也就是说眼睛可以分辨,要等一小下才能看到跳转的页面。

Activity代码:

package com.example.learntest;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.Toast;

public class MainActivity extends Activity {

long time = (long)0.0;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

Button btn_mainActivity = (Button)findViewById(R.id.btn_mainAc_1);

btn_mainActivity.setOnClickListener(new ButtonListen());

}

class ButtonListen implements OnClickListener{

public void onClick(View v) {

time = System.currentTimeMillis();

switch(v.getId()){

case R.id.btn_mainAc_1:

Jump2Second();

break;

case R.id.btn_secondA_1:

Jump2Main();

break;

default:

break;

}

}

} //按钮监听部分,非常便于阅读和管理

public void Jump2Second(){

setContentView(R.layout.activity_second);

long currTime = System.currentTimeMillis();

Toast.makeText(MainActivity.this,

"切换耗时:" +String.valueOf(currTime-time)+"毫秒",

Toast.LENGTH_SHORT).show();

Button btn_secondActivity = (Button)findViewById(R.id.btn_secondA_1);

btn_secondActivity.setOnClickListener(new ButtonListen());

} //跳转到第二个页面方法实现

public void Jump2Main(){

setContentView(R.layout.activity_main);

long currTime = System.currentTimeMillis();

Toast.makeText(MainActivity.this,

"切换耗时:" +String.valueOf(currTime-time)+"毫秒",

Toast.LENGTH_SHORT).show();

Button btn_mainActivity = (Button)findViewById(R.id.btn_mainAc_1);

btn_mainActivity.setOnClickListener(new ButtonListen());

}

} //返回到第一个页面方法实现

说明:

主要分为四部分:

1、onCreate方法里,要设置监听,进入后续的监听循环

2、监听方法实现,判断是来自哪个按钮,每个按钮的R.id....都是唯一固定的

3、Jump2Second方法的实现,这里首先将页面设置成第二个layout,然后要再次findViewById一下

Button btn_secondActivity = (Button)findViewById(R.id.btn_secondA_1);

btn_secondActivity.setOnClickListener(new ButtonListen());

再次设置监听。

这一点我也比较郁闷,跳转过后,都要find一下。如果把这两个button设置成全局变量,还是不中!设置成static变量也不中,

跳转页面后,一定要再次findViewById一下,设置监听,才能保证程序正常的逻辑。

4、Jump2Main的实现与之类似。不重复。

Android切换页面效果的实现二:WebView+ViewPager

前言: 由于第一种切换页面的效果不能满足项目的要求,于是又找到另外一种更简单好用的方法来实现,顿时感觉,做项目开发,找到一种合适的方法能够减少很多时间,(刚开始自己弄的时候还想着自己写手势识别的方法呢 ...

Android切换页面效果的实现一:WebView+ViewFlipper

前言: 这两周在帮学校做一个新生入学用的“新里程”的项目,要做到页面切换阅读的效果,自己百度了下,找到普遍是使用WebView+ViewFlipper的实现方法,但这种方法不能满足我的要求,因为它很难 ...

Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发

原文 Visual Studio跨平台开发实战(5) - Xamarin Android多页面应用程式开发 前言 大部份的Andr​​oid 都具有实体或虚拟的Back键. 因此在处理多页面应用程式时 ...

Android 切换主题以及换肤的实现

Android 切换主题以及换肤的实现 一.介绍 现在市面上有很多 APP 有切换主题和皮肤的功能!特别是阅读类的 APP! 上面两张图分别是 知乎 APP 和Fuubo APP的两张截图!都带有切换 ...

Android实现页面跳转、ListView及其事件

Android实现页面跳转.ListView及其事件 开发工具:Andorid Studio 1.3 运行环境:Android 4.4 KitKat 工程内容 进入主页面后,使用ListView实现特 ...

ViewPager源码分析——滑动切换页面处理过程

上周客户反馈Contacts快速滑动界面切换tab有明显卡顿,让优化. 自己验证又没发现卡顿现象,但总得给客户一个技术性的回复,于是看了一下ViewPager源码中处理滑动切换tab的过程. View ...

Android WebView页面加载优化

目前webapp越来越多,体验也越来越好,为了能够更好的使用WebView展示出流畅的的页面,可以从以下几点做优化: WebView缓存 资源文件本地存储 减少耗时操作 客户端UI优化 可能有人会说了 ...

基于Ascensor.js全屏切换页面插件

今天给大家分享一款基于Ascensor.js全屏切换页面插件,这款实例 适用浏览器:IE8.360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗.效果图如下: 在线预览 ...

Android 一个页面上下两个ListView的页面显示

Android 一个页面上下两个ListView,当上面的ListView过长时,下面的List基本没有了滑动空间,查阅网上资料,解决办法基本是采用ScrollView做页面滑动,notifyData ...

随机推荐

跨站请求伪造 CSRF / XSRF<一:介绍>

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一 ...

sql2008r 收缩数据库日志log文件;删除errorlog文件的方法

1.清空log文件,以减少数据库文件log所占的空间 USE dbname1 ; GO ALTER DATABASE dbname1 SET RECOVERY SIMPLE;--设置简单恢复模式 GO ...

使用Github Pages创建自己的网站

这是一篇使用Github Pages创建自己网站的教程,操作很简单,相信,亲们肯定一学就会,但是大家也要有一定的github基础呀,所以小编给大家附上一个链接(http://www.cnblogs.c ...

车牌识别LPR(一)-- 研究背景

在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...

我所犯的JavaScript引用错误

近期在w3cschool学习JavaScript和php--学完后,开始帮一哥们友情写网站.但是在使用ajax和Jquery的时候发现,我自己写的脚本不能运行.捣鼓了半天,没有发现任何语句错误.调试器 ...

java版数据结构与算法第二章数组

数组由一组具有相同类型的数据元素组成,并存储在一组连续存储单元中.一维数组是常量. 二维数组:若一维数组中的数据元素又是一堆数据结构,我们称之为二维数组.二维数组可以看成是n个列向量组成的线性表. 数 ...

2018-6-25-随笔-MVC

向IIS中注册.net框架版本:安装的IIS因为是先安装了VS所以它里面的应用程序池的.net框架还是系统自带的框架,Win7是2.0,需要将VS的.net框架版本注册 注册方法:在开始菜单找到VS2 ...

R语言学习笔记:基础知识

1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...

HDU 2089 不要62(数位dp模板题)

http://acm.hdu.edu.cn/showproblem.php?pid=2089 题意:求区间内不包含4和连续62的数的个数. 思路: 简单的数位dp模板题.给大家推荐一个好的讲解博客.h ...

android 界面切换监听,Android切换页面--setContentView相关推荐

  1. android 使用广播监听网络切换

    在Application中添加以下代码就可以监听网络切换 private BroadcastReceiver mNetworkStateReceiver = new BroadcastReceiver ...

  2. android gridview滑动监听,Android GridView 滑动条设置一直显示状态(推荐)

    Android GridView 滑动条设置一直显示状态(推荐) 模拟GridView控件: android:id="@+id/picture_grid" android:layo ...

  3. android 屏幕方向监听,Android如何监听屏幕旋转

    背景 关于个人,前段时间由于业务太忙,所以一直没有来得及思考并且沉淀点东西:同时组内一个个都在业务上能有自己的思考和总结,在这样的氛围下,不由自主的驱使周末开始写点东西,希望自己除了日常忙于业务,可以 ...

  4. android 键盘隐藏监听,Android监听键盘显示和隐藏

    问题概况:横板cocos2dx游戏,点击输入框弹出键盘时,界面要求跟随网上平易,不能挡住输入框.这种问题只出现在非全屏键盘到情况下. 方案1:mainActivity重写onconfiguration ...

  5. android edittext 光标监听,Android EditText监听器,用于光标位置更改

    我有一个EditText对话框. EditText在创建时已经填充.当用户将光标放置在文本的特定部分或其附近时,Toast将弹出. 我的问题是监听光标位置的变化.另一个post提出同样的问题,并且接受 ...

  6. android底层按键监听,Android应用中Back键的监听及处理实例

    MainActivity如下: package cn.testnbackpressed; import android.os.Bundle; import android.view.KeyEvent; ...

  7. android edittext的监听,android editText 监听事件

    在软键盘中注意 在监听的 edittext中 使用android:imeOptions属性的时候,一定要对EditText设置 android:inputType 或者 设置 android:sing ...

  8. android触摸滑动监听,Android 滑动监听的实例详解

    Android 滑动监听的实例详解 摘要: ScollBy,ScollTo是对内容的移动,view.ScollyBy是对view的内容的移动 view,ScollTo是对内容的移动(移动到指定位置), ...

  9. android 屏幕方向监听,android 屏幕旋转问题 - jwzhangjie的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...

    settings设置 在Android的Settings-> Display中有Orientation这一设置项.当选中时,屏幕会随设备旋转. settings设置是在文件SoundAndDis ...

最新文章

  1. ReentrantLock+线程池+同步+线程锁
  2. R语言tidyr包spread()函数实战详解:数据裂变、从窄表到宽表
  3. C#中动态加载卸载类库
  4. 十个改变了计算机世界的算法,你知道几个?
  5. 世界正在走向实时化,谈谈Twitter对流处理的理解与思考
  6. keepalived 报错 Popt libraries is required
  7. Android Canvas简单使用
  8. 关于Web端-UI自动化测试
  9. 结合AlphaGo算法和大数据的量化基本面分析法探讨
  10. 儿童手表语音物联卡贵吗?如何办理?
  11. win10点击任务栏图标无法最小化应用
  12. 企业级存储发展趋势谈:开源存储的冷思考
  13. python中什么叫类、什么叫对象_Python中的类和对象是什么
  14. CAN总线协议报文浅析
  15. ArcGIS教程 - 附录 - ArcGIS快捷键
  16. echarts全国地图china.js
  17. MIT-BIH介绍(一)为什么要使用MIT-BIH?
  18. Vant-ui 移动端下拉刷新
  19. 【吐血推荐一下】爆强的搞笑签名档
  20. PS 模糊|锐化|涂抹工具

热门文章

  1. 前端实现每天只能签到一次
  2. Java之支付宝支付(电脑网站支付)沙箱测试版
  3. 计算机中的公式应用,计算机办公主动化(常用公式和函数在电子表格中的应用).ppt...
  4. 地理数据下载网站汇总
  5. 盐城师范学院毕业要求计算机过一级吗,盐城师范学院本科专业指标体系.DOC
  6. 获取微信小程序源码并进行反编译
  7. contig命令整理文件碎片
  8. 在arcgis中以txt格式导出点的坐标
  9. notepad++下划线以及大小写字母置换
  10. [青少年CTF]Web—Easy CheckMe1-8 by 周末