安卓基础6:页面跳转及数据传递

页面跳转及数据传递

四大组件:

界面:Activity

广播:broadCastReceiver

服务service

内容提供者:contentProvider

标签说明:

一个Activity就相当于一个界面;

只要创建四大组件之一,就需要在清单文件中配置一下;

application:

代表当前应用;

intent-filter:

意图过滤器:


这里写明了应用的主入口,和当前界面的种类为应用启动项;

 

页面的跳转

所谓的隐式意图,它的跳转通过action来进行跳转;而显示意图,则是通过包名、类名、界面名这些显示的信息进行跳转;

隐式意图:

通过制定一组动作或者数据 比如:电话拨号器案例;


Eg:

 

显示意图:

通过指定包名和界面名来开启activity

这里第一个参数是包名,第二个参数是界面的名字

附:


跳转文件的配置文件


简单写法:通过构造函数执行

总结:

1、显示意图更加安全,隐式意图不是很安全;

2、开启自己应用的界面用显示意图,在配置Activity时不需要配置意图过滤器

3、开启其他应用的界面用隐式意图;  eg:电话播放器(把系统的应用打开)

 

人品计算器

代码:

界面

主界面



跳转界面:


事物处理层:

主界面:


跳转界面:


配置xml配置文件

数据传递:

通过意图传递数据的几种方式:

通过隐式意图中的setData方法传递

传递:


接收:

可以直接通过intent传递

可传递java八大数据及jason数据、集合

传递:


接收:

不同界面返回数据

步骤

1、设置requestcode

Void  startActivityForResult(Intent intent, int requestCode):

当开启界面需要返回内容时调用;

2、设置resultcode

setResult(resultcode,intent);

在返回主界面之后,调用主界面的方法:根据返回请求码和结果码的不同进行获取不同页面传回的数据,并进行处理

protected voidonActivityResult(int requestCode,intresultCode, Intent data){}


短信大全小案例:

1、用listView画UI界面

2、写业务逻辑

3、通过隐式意图,把发送短信页面打开,并且把数据传递过去

代码:

界面

主界面:


跳转界面


事务处理层:


因为跳转界面是系统自带,因此不需要去xml中配置;

短信发送小案例:

总结实现步骤:

1、画mainActivity页面

2、画联系人页面:用一个ListView展示

3、写mainActivity的逻辑 主要代码

4、写短信模板页面,用listView展示

5、实现短信末班

6、通过发送按钮发送短信

代码:

主界面


联系人

短信

界面

主界面:


联系人界面:

ListView:


View内容:

短信界面:

List界面:

View界面:

事务处理:

主界面处理


联系人处理:



 

信息处理

结果码和请求码:

之前在返回界面的时候会设置,在获取内容时,可以更具他们的数值判断是谁给我的数据;

 

开启其他界面:

Void  startActivityForResult(Intent  intent, int  requestCode):

当开启界面需要返回内容时调用;

void  startActivity(Intent  intent)

仅仅视为了打开界面而不需返回内容时;

 

Activity的生命周期:

生命周期中几个相关函数:

onCreate:在创建界面时调用

onstart:当界面可见时调用

onresume:在界面焦点重新获取时

onrestart:在界面重新可见时(点击home之后再回来)

onpause:在界面焦点失去时,按钮不可按时调用

onstop:再界面不可见时

ondestroy:在界面关闭时

举例:

1、 当点击后退键:

a)      调用onpause

b)     调用onstop

c)      调用ondestory

2、 当横竖切屏

a)      调用onpause

b)     调用onstop

c)      调用ondestory

d)     调用onCreate

e)      调用onstart

f)       调用调用onresume

注意:

当横竖切屏时,Activity会销毁然后再创建

为了防止Activity销毁,一般程序会将Activity切屏朝向写死

在AndroidManifest.xml中的activity中写入属性

1、


2、

 

任务栈:

1、栈:先进后厨

2、队列:先进先出

3、任务栈:是用来维护Activity的用户操作体验

4、打开一个Activity叫进栈

5、关闭一个Activity叫出栈

6、我们用户操作的Activity永远是栈顶的Activity

7、说我们应用程序退出了,实际上是任务栈清空了但是进程依然存在

(安卓先给应用分配了一个Linux进程)

8、一般情况下,一个应用程序对应一个任务栈

 

Activity的四种启动模式

1、standard默认模式:按顺序入栈

2、SingleTop启动模式:查看任务栈的最顶层是否为该线程

3、SingleTask启动模式:查看任务栈中是否有该线程(节约了内存)

4、SingleInstance启动模式:单独创建一个任务栈,并且只有一个实例

eg:来电界面;(为了解决内存)

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android Studio页面跳转数据传递回传是指在不同的Activity之间传递数据的过程。在Android中,可以通过Intent对象来实现页面跳转数据传递。具体步骤如下: 1. 在发送数据的Activity中创建Intent对象,并使用putExtra()方法数据添加到Intent中。 2. 调用startActivity()方法启动目标Activity,并将Intent对象作为参数传递给该方法。 3. 在目标Activity中,使用getIntent()方法获取传递过来的Intent对象,并使用getStringExtra()等方法获取传递过来的数据。 4. 如果需要回传数据,可以在目标Activity中创建一个新的Intent对象,并使用putExtra()方法数据添加到Intent中。 5. 在目标Activity中调用setResult()方法设置返回结果,并使用finish()方法关闭当前Activity。 6. 在发送数据的Activity中,重写onActivityResult()方法获取返回的数据。 以上就是Android Studio页面跳转数据传递回传的基本步骤。 ### 回答2: Android Studio 页面跳转是指在一个activity中点击某个按钮,然后进入另外一个activity的过程。在这个过程中,我们可能需要传递一些数据到下一个activity,或者在下一个activity中对数据进行操作后再回传给上一个activity。Android Studio提供了多种方法来实现这个过程,下面我们就来具体讲述。 在跳转到下一个activity的过程中,我们可以使用intent来传递数据。在上一个activity中,我们可以这样定义一个intent: Intent intent = new Intent(MainActivity.this, SecondActivity.class); intent.putExtra("name", "小明"); startActivity(intent); 在下一个activity中,我们可以这样获取到上一个activity中传递过来的数据: String name = getIntent().getStringExtra("name"); 在这个例子中,我们传递了一个字符串数据name到下一个activity中,并且在下一个activity中获取到了这个数据。 接下来,我们来讲一下如何实现回传数据。在上一个activity中,我们可以这样启动下一个activity: Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, 1); 在下一个activity中,我们可以这样设置结果: Intent intent = new Intent(); intent.putExtra("result", "操作成功"); setResult(RESULT_OK, intent); finish(); 在上一个activity中,我们可以这样获取到下一个activity返回的数据: protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == RESULT_OK) { String result = data.getStringExtra("result"); textView.setText(result); } } 这就是Android Studio页面跳转数据传递回传的基本实现方法。需要注意的是,在回传数据的时候,我们必须使用setResult方法数据设置回去,并且在下一个activity中一定要调用finish方法,不然上一个activity就无法接收到下一个activity返回的数据。 ### 回答3: Android Studio 是广泛使用的移动应用开发平台,开发者可以使用它来设计各种应用程序。在开发过程中,页面之间的数据传递回传是必不可少的。下面将详细介绍 Android Studio 页面跳转数据传递回传的几种方法。 一. 页面跳转数据传递 1. 使用Intent传递数据 Intent 是Android中组件之间通信的基础。开发者可以在一个Activity中创建并配置一个Intent,然后在“startActivity”方法中启动另一个Activity。使用Intent传递数据的代码实例如下: ``` // 创建一个 Intent 对象 Intent intent = new Intent(MainActivity.this, SecondActivity.class); // 传递数据 intent.putExtra("key", value); // 启动另一个Activity startActivity(intent); ``` 在接受数据的Activity中,可以通过以下方式获取传递数据: ``` String value = getIntent().getStringExtra("key"); ``` 2. 使用Bundle传递数据 Bundle 是一种存储键值对的容器,也是在Activity之间传递数据的一种方式。使用Bundle传递数据的代码实例: ``` // 创建 Bundle 对象 Bundle bundle = new Bundle(); // 存入数据 bundle.putString("key", value); // 创建 Intent 对象 Intent intent = new Intent(MainActivity.this, SecondActivity.class); // 传递 Bundle 对象 intent.putExtras(bundle); // 启动另一个 Activity startActivity(intent); ``` 在接受数据的Activity中,可以通过以下方式获取传递数据: ``` Bundle bundle = getIntent().getExtras(); String value = bundle.getString("key"); ``` 二. 页面跳转数据回传 1. 使用startActivityForResult()方法传递数据 使用 startActivityForResult() 方法启动一个Activity可以在另一个Activity中接收传递的结果和数据。代码实例如下: ``` // 创建 Intent 对象 Intent intent = new Intent(MainActivity.this, SecondActivity.class); // 启动带返回结果的Activity startActivityForResult(intent, requestCode); ``` requestCode 是用来标识请求的代码,可以根据需要自行定义。 在另一个 Activity 中返回结果数据: ``` Intent intent = new Intent(); intent.putExtra("key", value); setResult(RESULT_OK, intent); finish(); ``` 在第一个Activity中,可以通过onActivityResult()方法获取传递回来的数据: ``` @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) { String value = data.getStringExtra("key"); //处理传递回来的数据 } } ``` 以上就是Android Studio页面跳转数据传递回传方法,开发者可以根据具体需求来选择适合自己的方法

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值