`
javayestome
  • 浏览: 1041010 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

初识Activity

阅读更多

1.在一个Activity中使用多个View

如果把Activity看作MVC中的Control?它负责管理UI和接受事件(包括用户的输入),虽然说一个Activity通常对应一个屏幕,但事实上,我们是可以只用一个Activity管理多个不同的View来实现简单的逻辑。
首先,我们增加一个新的资源描述layout/second.xml。

除了一个“Hello中国”以外,增加一个按钮可以返回前一个界面。然后,在代码中我们要为helloTwo增加两个方法,setViewOneCommand和setViewTwoCommand,分别处理一下在不同界面时,从资源里加载组件并为组件绑定一个事件处理器。

最后,我们需要在onCreate的时候,也就是启动后的main界面上设置一下按钮事件处理器。新的onCreate方法如下:

编译,运行,OK。

2.还是回到正道上,多个Activity之间的跳转

Android中提供一个叫Intent的类来实现屏幕之间的跳转,按文档的说法,似乎他们也建议采用这种方法,Intent的用法比较复杂,现在我先看看它最简单的用法。
先在应用中增加两个Activity,这需要修改AndroidManifest.xml文件了,如下:

很简单,就是加一个<Activity>标签而已,新标签的class是.HelloThreeB,显示的应用标题与前一个Activity一样而已,然后第二步就是修改一个HelloThree类的实现,在onCreate方法中绑定按钮的事件处理器:

这里的跳转功能用Intent来操作,它的最简单用法就是用函数setClass()设置跳转前后两个Activity类的实例,然后调用Activity自己的startActivity(intent)即可。最后一句finish()表示将当前Activity关掉(如果不关掉会如何?你可以自己试一下看效果,事实上有时我们是不需要关掉当前Activity的)。
然后,我们同样弄一个Activity类HelloThreeB,代码与前面的差不多,只是将setClass的两个参数反一下,这样就可以简单地实现在两个Activity界面中来回切换的功能了。

3.如果我想在两个Activity之间进行数据交换,怎么办?

前例中的startActivity()只有一个参数,如果需要向新打开的Activity传递参数,我们得换一个函数了, Android提供了startSubActivity(Intent,int)这个函数来实现这个功能。
函数原型为: public void startSubActivity(Intent intent, int requestCode)
这里的requestCode用来标识某一个调用,一般由我们定义一个常量。

如何把参数传过去呢?Intent类在提供setClass()函数的同时也提供了一个setData()函数。
函数原型为:public Intent setData(ContentURI data)
参数类型是ContentURI,它的详细内容下回再分析,现在就把它当成一个String类型来用吧。
参数带到新的Activity后,同样用Activity.getIntent()函数可以得到当前过来的Intent对象,然后用getData()就取到参数了。

把参数带回来的方法是Activity.setResult(),它有几个形式,现在先看最简单的一个吧。
函数原型是:public final void setResult(int resultCode, String data)
resultCode是返回代码,同样用来标识一个返回类型,而data则是它要返回的参数。

在原来的Activity中的事件处理回调函数onActivityResult,会被系统调用,从它的参数里可以得到返回值。
函数原型为:protected void onActivityResult(int requestCode, int resultCode,String data, Bundle extras)
这里的requestCode就是前面启动新Activity时的带过去的requestCode,而resultCode则关联上了setResult中的resultCode,data是参数,extras也是一个很重要的东西,后面再研究一下它的作用。

下面,我们来看一下代码吧,先看看HelloThree中的代码:

这里的REQUEST_TYPE_A是我们定义的一个常量。在onActivityResult中用它与RESULT_OK一起作为条件判断如何处理返回值,这里只是简单将TextView显示值换成传来的字串。
再来看看另一个HelloThreeB类的实现代码:

在按钮处理事件中,从Intent取出参数,处理一下再用setResult返回给前一个Activity即可。

编译运行即可。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sharetop/archive/2007/12/14/1936478.aspx

分享到:
评论

相关推荐

    动手学Android之二——初识Activity示例代码

    当我们谈论"动手学Android之二——初识Activity示例代码"时,这通常指的是一个简单的教程,旨在帮助初学者理解如何创建并运行第一个Android应用,从而开始他们的Android开发之旅。 在Android中,Activity是负责显示...

    android入门学习笔记-永远不变的helloworld、初识activity

    - `public void onCreate(Bundle icicle)`:这是Activity生命周期中的一个重要方法,当Activity被创建时调用。`Bundle icicle`参数用于保存Activity的状态信息。 - `setTheme(android.R.style.Theme_Dark)`:设置...

    Android初识之Activity组件

    在Android应用开发中,Activity是核心组件之一,它充当了用户界面的主要载体,与用户进行交互。本篇文章将深入探讨Activity的基本概念、生命周期以及如何在Activity之间传递数据。 首先,让我们了解一下Activity类...

    《深入理解Android》卷Ⅱ

    6.2.5 初识ActivityManagerService总结 6.3 startActivity分析 6.3.1 从am说起 6.3.2 AMS的startActivityAndWait函数分析 6.3.3 startActivityLocked分析 6.4 Broadcast和BroadcastReceiver分析 6.4.1 ...

    名师讲坛:Android开发实战经典-程序代码

    全书共分为13章,包括认识Android、搭建Android开发环境、初识Activity、Android中的基本控件(上)、布局管理器、Android事件处理、Android中的基本控件(下)、数据存储、Android组件通信、多媒体技术、手机服务、...

    Android学习笔记

    在“初识Activity”的部分,我们将了解Activity如何启动、停止、暂停和恢复,以及如何在不同的Activity之间进行导航。Activity的生命周期是理解应用行为的关键,包括onCreate()、onStart()、onResume()、onPause()、...

    初识 Service(三) 演示:Service给 Activity传递消息

    在Android应用开发中,`Service` 是一个非常重要的组件,它允许应用程序在后台长时间运行,即使用户界面(UI,如Activity)已经关闭。本篇我们将深入探讨如何在Service与Activity之间进行交互,尤其是Service如何向...

    初识Android

    在Activity生命周期之前先要说一下Activity栈,Activity栈保存了所有正在运行且没有终止的所有的Activity,Activity也遵循“先进后出”的原则

    Android应用开发-系统Activity的调用.pptx

    首先,Intent初识。Intent不仅仅是一个简单的消息对象,它更是一种请求意图的抽象表示。Intent包含了具体的操作请求信息,可以启动Activity、Service或发送广播。启动Activity有两种方式:直接使用`startActivity...

    初识Android-开发环境图文详解PPT

    本文将通过图文详解的方式带你深入理解Android开发环境的基本构成,并对关键概念如Activity、配置文件、布局文件、常用控件以及Intent进行详细介绍。 首先,我们来认识一下Android。Android是一种基于Linux内核的...

    SlidingMenu初识

    【滑动菜单(SlidingMenu)初识】 滑动菜单,通常称为侧滑菜单或抽屉式导航,是移动应用中常见的一种设计模式,尤其在Android平台上广泛使用。它允许用户通过从屏幕边缘向内滑动来显示隐藏的菜单选项,这种设计可以...

    adroid初识

    1. **Activity**:活动是用户界面的基本单元,代表了一个可视化的屏幕。每个活动通常对应于用户完成特定任务的功能,例如浏览网页、发送消息等。通过Intent对象,我们可以实现不同活动间的跳转和数据传递。 2. **...

    Android触摸事件传递机制初识

    "Android 触摸事件传递机制初识" Android 触摸事件传递机制是 Android 系统中的一项核心机制,它决定了事件如何从 Activity 传递到 View,然后再传递到 ViewGroup 中。理解这个机制是非常重要的,因为它关系到应用...

    栋栋仔Android学习宝典第二章初识Android程序[汇编].pdf

    本书的第二章“初识Android程序”主要涵盖了以下几个关键知识点: 1. **JDK的下载、安装与配置**:JDK(Java Development Kit)是编写Java应用程序的基础,包括了Java编译器、Java运行环境和各种开发工具。在这一...

    ViewPager初识

    - 使用Fragment时,要特别关注生命周期,避免在Activity重建时出现问题。 - 注意处理屏幕旋转等配置更改,避免不必要的数据丢失。 通过以上对ViewPager的基本介绍和使用技巧,我们可以更好地理解和利用这个组件,...

    recyclerview初识

    3. 内存泄漏:注意避免在ViewHolder中持有Activity或Context的强引用。 综上所述,RecyclerView是Android开发中不可或缺的组件,它提供了强大的功能和高度的定制性,使得开发者能够构建出高效、美观的列表或网格...

    Android NDK编程C++初识,基本数据类型使用

    setContentView(R.layout.activity_main); String result = stringFromJNI(); Log.d("MainActivity", "Result from C++: " + result); } public native String stringFromJNI(); } ``` 编译并运行程序后,`...

    Android基础-初识SQLite(源代码)

    DAO类则提供了一系列静态方法,如`insertData()`, `getData()`, `updateData()`, 和`deleteData()`,方便在Activity或Fragment中调用。 总结,SQLite是Android开发中不可或缺的一部分,它提供了灵活的数据存储方式...

Global site tag (gtag.js) - Google Analytics