热门标签 | 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();

}

推荐阅读
  • Android商城应用开发指南(第二部分):创建启动欢迎页
    大多数商城应用程序在启动时会显示一个欢迎页面,以提升用户体验。本文将指导您如何实现一个基本的欢迎页,该页面会在用户打开应用后短暂展示,随后自动跳转至主界面。 ... [详细]
  • 本文介绍了在Android项目中实现时间轴效果的方法,通过自定义ListView的Item布局和适配器逻辑,实现了动态显示和隐藏时间标签的功能。文中详细描述了布局文件、适配器代码以及时间格式化工具类的具体实现。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 采用IKE方式建立IPsec安全隧道
    一、【组网和实验环境】按如上的接口ip先作配置,再作ipsec的相关配置,配置文本见文章最后本文实验采用的交换机是H3C模拟器,下载地址如 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • JSOI2010 蔬菜庆典:树结构中的无限大权值问题
    本文探讨了 JSOI2010 的蔬菜庆典问题,主要关注如何处理非根非叶子节点的无限大权值情况。通过分析根节点及其子树的特性,提出了有效的解决方案,并详细解释了算法的实现过程。 ... [详细]
  • 本文介绍如何利用栈数据结构在C++中判断字符串中的括号是否匹配。通过顺序栈和链栈两种方式实现,并详细解释了算法的核心思想和具体实现步骤。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 本文介绍如何在Java中实现一个罗马数字计算器,重点在于如何通过循环和字符验证确保用户输入合法。我们将探讨创建一个方法来检查字符串中的非法字符,并使用循环不断提示用户输入,直到输入符合要求。 ... [详细]
  • 本文将详细介绍Nose这一非标准库的Python测试框架,它虽然不是Python官方发行版的一部分,但与unittest框架紧密相关,旨在通过简化测试流程来提升开发效率。 ... [详细]
  • KMP算法是一种高效的字符串模式匹配算法,能够在不进行回溯的情况下完成匹配,其时间复杂度为O(m+n),其中m和n分别为文本串和模式串的长度。本文将详细介绍KMP算法的工作原理,并提供C语言实现。 ... [详细]
  • 本文介绍了如何使用Java代码在Android设备上检测特定应用程序是否已安装。通过创建一个Intent并利用PackageManager查询该Intent的可用性来实现这一功能。 ... [详细]
  • Java EE CDI:解决依赖关系冲突的实例
    在本教程中,我们将探讨如何在Java EE的CDI(上下文和依赖注入)框架中有效解决依赖关系的冲突问题。通过学习如何使用限定符,您将能够为应用程序的不同客户端提供多种接口实现,并确保每个客户端都能正确调用其所需的实现。 ... [详细]
  • 本文探讨了在JavaScript中执行字符串形式代码的多种方法,包括使用eval()函数以及跨页面调用的方法。同时,文章详细介绍了JavaScript中字符串的各种常用方法及其应用场景。 ... [详细]
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社区 版权所有