008 Android activity实现多个界面的相互跳转(主要利用Intent)
1.activity介绍
一个activity就把他理解成一个页面
activity永远是全屏的。
2.新建activity流程

如图所示在com.lucky.test06的目录下,右击new--->Activity--->Empty Activity,会出现如下,点击finish即可。

3.页面跳转(利用Intent实现,页面跳转传值)
Intent称为意图,是Android各大组件连接的桥梁
案例:test06
<1>页面1
布局页面:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity"
android:gravity="center"> <TextView
android:id="@+id/tv_show1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> <!--android:layout_marginTop="20dp" 设置button组件顶部距离上一个组件的距离为20dp-->
<Button
android:id="@+id/bt_link1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="link1" />
</LinearLayout>
后台代码:
package com.lucky.test06; import android.app.Activity;
import android.content.Intent;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; public class MainActivity extends AppCompatActivity {
Button bt_link1;
TextView tv_show1; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_link1=findViewById(R.id.bt_link1); //在XML文件中寻找组件
tv_show1=findViewById(R.id.tv_show1); bt_link1.setOnClickListener(new View.OnClickListener() { //绑定按钮点击事件
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,Main2Activity.class);//参数1为跳转页面,参数2为跳转目标页
intent.putExtra("001","雨后观山色"); //参数1为传输数据的代号,参数2为数据内容
startActivityForResult(intent,0x01);//参数1为intent,参数2为请求码 }
});
} @Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { // 接收另一个页面的返回的数据
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==0x01&&resultCode==0x02){ //判断请求码和结果码是否正确
int i=data.getIntExtra("002",0);
tv_show1.setText(i+"");
}
}
}
<2>页面2
页面布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
tools:context=".Main2Activity"> <TextView
android:id="@+id/tv_show2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> <!--android:layout_marginTop="20dp" 设置button组件顶部距离上一个组件的距离为20dp-->
<Button
android:id="@+id/bt_link2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:text="link2" />
</LinearLayout>
后台代码:
package com.lucky.test06; import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView; public class Main2Activity extends AppCompatActivity {
TextView tv_show2;
Button bt_link2; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
tv_show2=findViewById(R.id.tv_show2);
bt_link2=findViewById(R.id.bt_link2);
final Intent intent=getIntent(); //接收所传送过来的数据
String data=intent.getStringExtra("001"); //参数为页面1的字符的代号
tv_show2.setText(data);
bt_link2.setOnClickListener(new View.OnClickListener() { //绑定按钮点击事件
@Override
public void onClick(View v) {
intent.putExtra("002",666); //参数1为数据代号,参数2为数据内容
setResult(0x02,intent); //参数1为结果码
finish();//退出Main2Activity页面
}
});
}
}
效果图:

008 Android activity实现多个界面的相互跳转(主要利用Intent)的更多相关文章
- android Activity介绍
一般情况下,Android程序的流程都运行在activity中,activity具有自己的生命周期,由系统来控制.可以使用onSaveInstanceState()和onRestoreInstance ...
- Android Activity的加载的模式
---恢复内容开始--- 本文来自http://www.cnblogs.com/lwbqqyumidi/p/3771542.html launchMode在多个Activity跳转的过程中扮演着重要的 ...
- Android activity和service的生命周期对比
1Activity生命周期 七个方法 1. void onCreate(Bundle savedInstanceState) 当Activity被第首次加载时执行.我们新启动一个程序的时候其主窗体的o ...
- Android Activity的生命周期简单总结
Android Activity的生命周期简单总结 这里的内容参考官方的文档,这篇文章的目的不是去总结Activity是如何启动,如何创造,以及暂停和销毁的,而是从实际开发中分析在Activity各个 ...
- Android Activity的加载模式和onActivityResult方法之间的冲突
前言 今天在调试程序时,发现在某一Activity上点击返回键会调用该Activity的onActivityResult()方法.我一开始用log,后来用断点跟踪调试半天,还是百思不得其解.因为之前其 ...
- Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法:
Android Activity的onSaveInstanceState() 和 onRestoreInstanceState()方法: 1. 基本作用: Activity的 onSaveInstan ...
- Android Activity 详述
activity类处于android.app包中,继承关系: extends ContextThemeWrapper implements LayoutInflater.Factory2 Window ...
- Android Activity初探
原地址:Android Activity初探 Activity是一个应用中的组件,它为用户提供一个可视的界面,方便用户操作,比如说拔打电话.照相.发邮件或者是浏览地图等.每个activity会提供一个 ...
- Android Activity的生命周期详解
应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应. Activity之间通过Intent进行通信.在Intent 的描述结构中,有两个最 ...
随机推荐
- VMware设置及linux静态ip设置
1. VMWARE虚拟机NAT模式上网设置 1.1. VM虚拟机设置 1.1.1. 虚拟机全局设置 启动虚拟机选择[虚拟网络编辑器] 如果需要管理员权限点[更改设置],没有提示这忽略这一步 选 ...
- 学习神器!本机安装虚拟机,并安装Linux系统,并部署整套web系统手册(包含自动部署应用脚本,JDK,tomcat,TortoiseSVN,Mysql,maven等软件)
1. 引言 编写目的 本文档的编写目的主要是在Linux系统上部署mis_v3员工管理系统,方便测试,并为以后开发人员进行项目部署提供参考 准备工作 软件部分 软件项 版本 备注 Mysql 5. ...
- 在TFS中获取项目,获取最新和上传(迁入)
一.在TFS中获取项目: (1)team (2)connect to team.... (3)选择服务地址,然后close (4)然后映射本地文件夹下载项目 (5)mapped添加映射,在map下就可 ...
- 7. Reverse Integer 反转整数
[抄题]: 将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数). 样例 给定 x = 123,返回 321 给定 x = -123,返回 -321 [暴力解法]: ...
- 基于PCL的屏幕选点、框选点云、单点选取
1. 单点选取 #include <pcl/io/pcd_io.h> #include <pcl/point_cloud.h> #include <pcl/point_t ...
- Luogu 2597 [ZJOI2012]灾难
BZOJ 2815. 解法还是挺巧妙的. 放上写得很详细很好懂的题解链接 戳这里. 一个物种$x$如果要灭绝,那么沿着它的入边反向走走走,一定可以走到一个点$y$,如果这个点$y$的物种灭绝了,那么 ...
- urllib2设置代理
#coding=utf-8 #公司网络只有连接vpn跳板机才能使用该模块 import urllib2 proxy_handler=urllib2.ProxyHandler({'http':'http ...
- Entity Framework 6.0 Tutorials(5):Command Interception
Interception: Here, you will learn how to intercept EF when it executes database commands. EF 6 prov ...
- [redis]redis-cluster的使用
1.为集群添加一个主节点 首先准备一个全新的redis文件夹,这里我们叫做为7007 [root@CentOS7 redis-cluster]# ls [root@CentOS7 redis-clus ...
- DB2 添加license
DB2 - DB2COPY1 - DB2-0 服务不能启动报的错是这样的:Microsoft Management Console Windows 不能在 本地计算机 启动 DB2 - DB2.有 ...