前一个教程介绍了如何运用切换Layout
的方式进行手机页面间的转换,如果要转换的页面不只是背景,颜色或文字内容的不同,而是Activity
的置换,那,那就不是单单改变Layout
就能完成的,尤其是需要传递的变量不像网页可以通过Cookie
或Session
,在程序里要移交主动权到另外一个Activity
,光靠先前技巧是办不到的.
而下面我们要讲的Intent
对象就是为解决这问题而生的,Intent
就如同其英文字义,是"想要"或"意图",之意,在主Activity
当中,告诉程序自己是什么,并想要前往哪里,这就是Intent
对象所处理的事了,本例子和前一个例子我们将实现同一个效果.
看一下效果图:
下面是所涉及的代码:
首先是布局main.xml
及mylayout.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.java
及IntentDemo1.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 activityIntent 传值 传对象
android 利用intent调用activity 简明精炼的例子 传递数据,并且有返回值
Android源代码 演示3个功能: (1)Intent打开另外一个Activity (2)Intent拨电话 (3)Intent在2个Activity间传递数据
本demo是利用了最简单的代码来实现调用另一个activiy,特别适合初学者来理解Intent的使用。
1、设计界面,包括四个按钮,两个文本框。单击对应按钮可以启动对应activity。假定Activity A为启动Activity。 2、修改 Activity 的启动模式 LaunchMode,并通过 Log 信息来体会不同启动模式所对应的Activity 和 ...
【Android开发学习20】多个Activity间的交互之Intent。一个很基础的程序,仅仅实现一个按钮,跳转到另一个Activity去。
主要为大家详细介绍了Android利用Intent启动和关闭Activity的相关操作,感兴趣的小伙伴们可以参考一下
这里包括两个 eclipse 工程, 在一个工程FirstAndroid里调用另一个工程SecondAndroid里的Activity 和 Service,SecondAndroid只能通过别的app 来启动,它自己不能启动,因为它没有 android.intent.action.MAIN这个...
前言 在sendBroadcast,startActivity时,我们会用到Intent。 Intent可以携带一些数据,比如基本类型数据int、Boolean,或是String,或是序列化...在Intent中传入一个Parcelable对象;例如传入一个bitmap对象。 代
NULL 博文链接:https://ln-ydc.iteye.com/blog/1905353
cordova-plugins-activity cordova调用安卓原生activity插件 使用简介 JS端使用方式 //sendData表示要从js端发送到原生activity的数据,需用json对象传输 var sendData = { id:10001, name:"Simon", age:28 }; ...
android intent
启动另一个Activity并利用Intent传输数据
文档介绍了简介,一、抽象描述要描述什么,二、 Android如何解析Intent,三、应用例子,Activity之com.google.android.notepad.NotesList
Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...
android intent和intent action大全
一个React Native插件,使React Native应用程序能够从另一个应用程序接收共享的照片,视频,文本,URL或任何其他文件类型。 此外,还支持iOS Share扩展并自动启动主机应用程序。 查看提供的示例以获取更多信息。 ...
2. 掌握使用intent实现activity之间的跳转 3. 掌握在manifest文中定义多个activity,并指定Launcher Activity 4. 掌握Activity的启动模式,和启动模式所对应的Activity和task的关系 内容: 1、设计如下界面,包括四...
通过Intent实现Activity之间的切换,并利用Intent实现了数据的传递
Android 通过Intent使用Bundle传递对象 Android开发中有时需要在应用中或进程间传递对象,下面详细介绍Intent使用Bundle传递对象的方法。 被传递的对象需要先实现序列化,而序列化对象有两种方式:java.io....