`

Android中级教程(二)之调用另一个Activity---Intent对象的使用!

阅读更多

前一个教程介绍了如何运用切换Layout 的方式进行手机页面间的转换,如果要转换的页面不只是背景,颜色或文字内容的不同,而是Activity 的置换,那,那就不是单单改变Layout 就能完成的,尤其是需要传递的变量不像网页可以通过CookieSession ,在程序里要移交主动权到另外一个Activity ,光靠先前技巧是办不到的.

而下面我们要讲的Intent 对象就是为解决这问题而生的,Intent 就如同其英文字义,是"想要"或"意图",之意,在主Activity 当中,告诉程序自己是什么,并想要前往哪里,这就是Intent 对象所处理的事了,本例子和前一个例子我们将实现同一个效果.

看一下效果图:

下面是所涉及的代码:

首先是布局main.xmlmylayout.xml

main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="欢迎来到魏祝林的博客"
/>
<Button
android:id="@+id/bt1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击进入Layout2"
/>
</LinearLayout>

mylayout.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffffff"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Welcome to Mr Wei's blog"
/>
<Button
android:id="@+id/bt2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击进入Layout1"
/>

</LinearLayout>

然后是控制程序IntentDemo.javaIntentDemo1.java 代码:

IntentDemo.java:

package com.android.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class IntentDemo extends Activity {

private Button bt1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

bt1 = (Button)findViewById(R.id.bt1);

bt1.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v){
//new 一个Intent对象,并指定要启动的Class
Intent intent = new Intent();
intent.setClass(IntentDemo.this, IntentDemo1.class);
//调用一个新的Activity
startActivity(intent);
//关闭原本的Activity
IntentDemo.this.finish();

}
});
}
}

IntentDemo.java 同一目录内新建一个IntentDemo1.java

IntentDemo1.java:

package com.android.test;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class IntentDemo1 extends Activity {

private Button bt2;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 载入mylayout.xml
setContentView(R.layout.mylayout);

bt2 = (Button) findViewById(R.id.bt2);
bt2.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) {
// new 一个Intent对象,并指定要启动的Class
Intent intent = new Intent();
intent.setClass(IntentDemo1.this, IntentDemo.class);
// 调用一个新的Activity
startActivity(intent);
// 关闭原本的Activity
IntentDemo1.this.finish();

}
});
}
}

最后是本例子的重点,添加另外一个Activity 所以必须在AndroidManifest.xml 中定义一个新的activty ,并给予名称name ,或则程序无法编译运行.新手很容易遇到这个问题.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.test"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".IntentDemo"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="IntentDemo1"></activity>
</application>
<uses-sdk android:minSdkVersion="3" />

</manifest>

本例子所涉及的的全部代码已经全部贴出,最后执行之,将达到上述效果!本节到此结束~

分享到:
评论

相关推荐

    初中级Android开发社招面试之Activity篇.pdf

    在面试中,对于初中级Android开发者来说,理解Activity的生命周期、启动模式以及相关方法的使用至关重要。 1. Activity生命周期: - `onCreate()`:Activity首次创建时调用,用于设置界面布局和初始化数据。 - `...

    初中级Android开发社招面试之Activity篇.zip

    总结来说,初中级Android开发者应熟练掌握Activity的生命周期、Intent使用、Activity间通信、栈管理、数据持久化以及权限管理等方面的知识,以应对社招面试中的各种问题。这些内容是Android开发的基础,也是构建复杂...

    Android从初级到高级代码二

    总之,“Android从初级到高级代码二”将带你进一步探索Activity的深度,包括生命周期管理、Intent的使用、多Activity交互、Fragment的运用,以及状态保存和数据持久化等核心知识点。通过对这些内容的掌握,你将能够...

    初中级Android开发社招面试之Service及BroadcastReceiver.pdf

    - onBind(): 当其他组件(如Activity)绑定到服务时调用,通常返回一个Binder对象供客户端交互。 - onUnBind(): 当所有客户端解绑服务后调用,表示无组件再需要服务。 - onDestroy(): 服务即将停止时调用,用于...

    android 中文开发指南

    通过使用`Intent`,开发者可以启动一个新的`Activity`、`Service`或发送一个广播给`BroadcastReceiver`。`Intent`还可以携带额外的数据,以便被激活的组件能够根据这些数据来定制其行为。 ##### 关闭组件 组件可以...

    Android面试大全.zip

    然后,Android基础和中级面试内容通常涉及以下几个方面: 1. **Android体系结构**:理解Android系统的组件模型,包括Activity、Service、BroadcastReceiver和ContentProvider的工作原理。 2. **布局与UI设计**:XML...

    初中级Android开发社招面试之Service及BroadcastReceiver.zip

    IntentFilter定义了BroadcastReceiver能接收的Intent类型,ACTION是Intent的一个属性,用于标识广播的类型。 4. **BroadcastReceiver的生命周期**: BroadcastReceiver没有完整的生命周期,只有onReceive()方法。...

    Beginning_Android_4_Application_Development

    - **第一个Android应用**:通过创建一个简单的“Hello World”应用来引导读者完成从零到有的开发过程。 ##### 第2章:活动、片段和意图 这一章节深入探讨了Android应用程序的核心组件——活动(Activity)、片段...

    初中级Android开发社招面试之数据存储、IPC及View.zip

    在Android应用开发中,数据存储、进程间通信(IPC)以及View系统是核心知识点,对于初中级开发者来说,掌握这些技能至关重要。以下是针对这些主题的详细解析: **数据存储** 1. **SharedPreferences**: 这是一种轻...

    android 简易桌面源码

    本资源是一个简单的Android Launcher源码,使用了GridView来显示应用列表,非常适合初级到中级Android开发者学习和参考。 首先,我们来看一下Android Launcher的基本架构。Launcher通常由以下几个主要部分组成: 1...

    android资料(api及开发指南).rar

    - **Android开发环境搭建**:如安装Android Studio、配置SDK、创建第一个Hello World项目。 - **Android应用结构**:讲解应用的基本结构,如主Activity、manifest文件、资源文件等。 - **编程基础**:Java语言...

    android小米便签源码Notes2.2下载

    对于Android开发者来说,尤其是初学者和中级开发者,研究小米便签的源码是一个很好的学习机会,可以帮助他们深入了解Android应用开发的实践与规范。 源码分析: 1. **代码结构**: - 源码通常会遵循模块化的结构...

    应用源码短信语音播报源码.zip

    在本资源中,我们主要关注的是一个Android应用的源码,该应用实现了短信和语音播报功能。这是一份非常适合初级到中级...在学习过程中,建议结合Android开发者文档和相关教程,以便更深入地理解和掌握每一个细节。

    应用源码天气预报.zip

    本文将深入探讨一个基于Android的天气预报应用的源码,旨在帮助初级和中级开发者提升对Android应用程序开发的理解,特别是对于Java编程语言的应用和Android SDK的运用。 一、项目概述 "应用源码天气预报.zip"是一个...

    安卓开发笔记

    创建一个Handler,关联Looper,然后通过sendMessage()发送消息,Handler的handleMessage()方法会被调用来处理消息。 13. **Android序列化**: 序列化是将对象转换为字节流的过程,便于存储或网络传输。Android提供...

    spotify-streamer-stage-2:Udacity Android Nanodegree

    "spotify-streamer-stage-2:Udacity Android Nanodegree" 这个标题揭示了项目的核心——这是一个Udacity安卓纳米学位课程中的第二阶段项目,专注于开发一个Spotify流媒体应用程序。"Spotify Streamer"可能是这个应用...

    3A-Prog-Mobile-2020-TD1-2:TD1和2移动编程

    - 要实现邮件功能,可以调用Android的Intent系统,创建一个发送邮件的意图,然后启动默认的邮件应用。这需要了解如何构造Intent对象,并设置邮件相关的参数。 11. **随机数生成**: - "随机的! 不起作用:'("这...

    Android 淘宝客户端

    总结,"Android淘宝客户端"项目为开发者提供了一个实战平台,将理论知识与实际操作相结合,帮助开发者在实践中提升Android开发技能。无论是对于个人兴趣还是职业发展,参与此类项目都将是一次宝贵的学习经历。

Global site tag (gtag.js) - Google Analytics