热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安卓页面的跳转(按钮点击跳转、自动跳转)

一.创建新页面在eclipse中建立安卓工程后,默认会有一个页面MainActivity,要实现多个页面的跳转,首先需要建立新的页面在eclipse建立新的页面过程如下:要添加的新

一.创建新页面

在eclipse中建立安卓工程后,默认会有一个页面MainActivity,要实现多个页面的跳转,首先需要建立新的页面
在eclipse建立新的页面过程如下:
要添加的新页面的工程下src 右键—->New—>Other—>选择Android下的Android Activity
《安卓页面的跳转(按钮点击跳转、自动跳转)》
选择next下一步
《安卓页面的跳转(按钮点击跳转、自动跳转)》
按照需求选择后点击next:
《安卓页面的跳转(按钮点击跳转、自动跳转)》
为新页面取名后点击完成,完成新页面的创建

二、安卓页面点击跳转

1.实现点击按钮实现页面跳转

要实现点击按钮实现页面跳转,需要进行安卓按键的响应,安卓按键响应的几种方式见安卓按键响应的方式

这里运用了在xml中设置按键的onClick绑定的函数这一方法。
activity_main_xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转到第二个界面"
// 按键响应
android:onClick="GoSecond"
/>

<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="第一个界面"
android:layout_below="@id/button1"
android:layout_marginTop="50dp"
/>
</RelativeLayout>

MainActivity.java:

package com.example.heavysea.l;
//import android.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void GoSecond(View v){
// Intent 去设置要跳转的页面
Intent intent = new Intent(this,SecondActivity.class);
// 进行跳转
startActivity(intent);
}
}

实现效果:点击button,从MainActivity跳转到SecondActivity

2.跳转过程中传参

在MainActivity中将数据传递给SecondActivity,使得SecondActivity获取数据:

MainActivity.java

package com.example.heavysea.l;
//import android.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void GoSecond(View v){
// Intent 去设置要跳转的页面
Intent intent = new Intent(this,SecondActivity.class);
// 设置要传递给页面二的参数 设置键值对
intent.putExtra("mydata", "来自页面MainActivity");
// 进行跳转
startActivity(intent);
}
}

SecondActivity.java:

package com.example.heavysea.l;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class SecondActivity extends Activity {
private String data;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// 获取参数
Intent i = this.getIntent();
data = i.getStringExtra("mydata");
System.out.println(data);
// 以弹框显示获取到的数据
Toast.makeText(this, data,0).show();
}
public void GoThird(View v){
Intent intent = new Intent(this,ThirdActivity.class);
startActivity(intent);
}
}

三、设置页面几秒后自动跳转

1.页面几秒后自动跳转

为实现页面在几秒后的自动跳转,最直接的思路就是运用sleep方法设置暂停的时间,再进行跳转。但实际上sleep方法是发生在UI线程中的,会使原本不断刷新的UI暂停,最终运行的效果是看不到第一个页面的,直接跳转到第二个页面。因此需要另外启动一个线程,在新线程中运用sleep方法。
为此需要引入java线程。

MainActivity.java

package com.example.heavysea.l;
//import android.R;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 需要另外启动一个线程 在新线程里面去sleep
// 不要在UI线程中sleep UI被sleep会暂停刷新
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent intent = new Intent(MainActivity.this,
SecondActivity.class);
intent.putExtra("mydata", "来自页面一");
startActivity(intent);
}
});

// 开启线程
t.start();
}
}

SecondActivity.java

package com.example.heavysea.l;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class SecondActivity extends Activity {
private String data;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
// 获取参数
Intent i = this.getIntent();
data = i.getStringExtra("mydata");
System.out.println(data);
Toast.makeText(this, data,0).show();

}

推荐阅读
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 本文将介绍如何使用 Go 语言编写和运行一个简单的“Hello, World!”程序。内容涵盖开发环境配置、代码结构解析及执行步骤。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文介绍如何利用动态规划算法解决经典的0-1背包问题。通过具体实例和代码实现,详细解释了在给定容量的背包中选择若干物品以最大化总价值的过程。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
author-avatar
白开水冲清茶
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有