一般切换页面,通过Intent,startActivity可以实现,但系统创建Activity是非常耗时的,如果对切换画面时间有要求,只能用setContentView在同一activity下切换页面,这样做切换快,但会增加程序逻辑控制的难度。在工业产品中,任何一个参数都是参与竞争的筹码,开机时间、画面切换时间等都是重要衡量因素。一般切换页面的时间在150ms以上,用户就会有反应,也就是说眼睛可以分辨,要等一小下才能看到跳转的页面。
下面上一个android开发,用setContentView来切换页面的例子,主要是程序部分,布局部分很简单,每个布局里都只有个按钮,分别是“切换”和“返回”,在手机上测试,最短切换耗时2ms,稳定在6-8ms之间。
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;
@Override
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) {
// TODO Auto-generated method stub
time = System.currentTimeMillis();
switch(v.getId()){
case R.id.btn_mainAc_1:
Jump2Second();
break;
case R.id.btn_secondA_1:
Jump2Main();
break;
default:
break;
}
}
}//按钮监听部分,为了方便阅读和管理,我写到一个类里面,用case判断。建议类似环境都这么搞!
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的实现与之类似。不重复。
源码下载:http://download.csdn.net/detail/yanzi1225627/4464499
分享到:
相关推荐
----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...
今天用华为荣耀7进行安卓测试,发现Log.v和Log.d不显示打印信息,只显示Log.i、Log.w和Log.e的信息。 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...
一个可配置的调试抽屉,可在您的Android应用中使用。 受到启发。 您可以将调试抽屉添加到调试版本中,以简化开发人员或测试人员的生活。 它提供了一种方便的方式来公开特定于开发的控件,而不会弄乱您的用户界面。...
自动驾驶运动规划(Motion Planning)问题分析
Excel数据看板,Excel办公模板,Excel模板下载,Excel数据统计,数据展示
Excel数据看板,Excel办公模板,Excel模板下载,Excel数据统计,数据展示
重庆大学期末考试试卷,重大期末考试试题,试题及答案
由随波逐编写开发,CTF编码工具为用户提供丰富的离线加密解密功能,还可以对字符编码进行转换,文件隐写查看,用户可以根据自己的需求来使用功能,非常实用,能够提高大家的工作效率!
重庆大学期末考试试卷,重大期末考试试题,试题及答案
基于matlab的SUI信道模型内含数据集.zip
工作总结,新年计划,岗位总结,工作汇报,个人总结,述职报告,范文下载,新年总结,新建计划。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
2023产业经济大脑建设方案.pptx
基于51单片机设计多功能计算器软硬件资料(包括原理图+仿真+ 软件源程序+文档资料) 本设计是以STC89C52单片机为核心的计算器模拟系统设计,输入采用5×8矩阵键盘,可以进行加、减、乘、除等十几种数字运算,同时支持括号的嵌套使用级浮点数的运算,并在LCD1602上显示操作过程。 本次设计注重设计方法及流程,首先根据原理设计电路,利用keil编程,借助实验开发平台进行仿真实验,进而利用altium designer 制作PCB,最后到焊接元器件,直至调试成功。在设计的同时,特别注重keil软件和altium designer软件的使用方法和技巧以及常用的LCD显示器和矩阵键盘的设计和使用方法。 【关键词】 计算器,STC89C52,矩阵键盘,1602液晶
工作总结,新年计划,岗位总结,工作汇报,个人总结,述职报告,范文下载,新年总结,新建计划。
杭州电子科技大学,期末考试资料,计算机专业期末考试试卷,试卷及答案,数据结构。
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
C++开发的图书管理系统
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
这是我2020年7月份在海淀参加FPGA工程师面试的题目,选择题、问答题,适用于参加FPGA工程师面试的小伙伴。这是当初我参加某个FPGA开发岗位的面试的考卷,里面有我做的答案。该试卷同样适用于FPGA学习者做能力测验。尤其适合尚未开始FPGA开发工作的小伙伴,用于提前试水,作为了解面试考题的素材之一