1、Activity之间的切换通过Intent来完成。

  1)清单文件,配置好Activity,所有Activity都需要在该文件中配置。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cn.luxh.intent"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="11"
android:targetSdkVersion="18" /> <application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- 第一个Activity -->
<activity
android:name="cn.luxh.intent.FirstActivity"
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 -->
<activity
android:name="cn.luxh.intent.SecondActivity"
android:label="@string/second_activity">
<intent-filter>
<action android:name="cn.luxh.intent.SecondActivity"/> <!--意图筛选器名称 -->
<category android:name="android.intent.category.DEFAULT"/><!--意图筛选器类别 -->
</intent-filter>
</activity>
</application> </manifest>

  2)Activity代码

package cn.luxh.intent;

import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.app.Activity;
import android.content.Intent; public class FirstActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
handleBtnJumpClick();
} /**
* 处理按钮点击事件
*/
private void handleBtnJumpClick() {
Button btn_jump = (Button) findViewById(R.id.btn_jump);
btn_jump.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//创建一个Intent /*Intent intent = new Intent();
intent.setClass(FirstActivity.this, SecondActivity.class);*/ //通过意图筛选器名称创建Intent
Intent intent = new Intent("cn.luxh.intent.SecondActivity"); //启动新的Activity
startActivity(intent);
}
});
} }
package cn.luxh.intent;

import android.app.Activity;
import android.os.Bundle; public class SecondActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}

  3)运行效果

2、从Intent中返回数据

  在第二个Activity中输入用户名,然后在第一个Activity中显示。

  1)布局文件activity_second.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" > <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/second_activity_textview"
android:layout_gravity="center_horizontal"/> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/second_activity_textview_username"/> <EditText
android:id="@+id/edit_text_username"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="text"/> <Button
android:id="@+id/btn_submit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/second_activity_btn_submit"
android:layout_gravity="right"/>
</LinearLayout>

  2)Activity代码

package cn.luxh.intent;

import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.app.Activity;
import android.content.Intent; public class FirstActivity extends Activity { public static final int REQUEST_CODE = 1;//标识代码 private static final String TAG = "FirstActivity"; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
handleBtnJumpClick();
} /**
* 处理按钮点击事件
*/
private void handleBtnJumpClick() {
Button btn_jump = (Button) findViewById(R.id.btn_jump);
btn_jump.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//创建一个Intent /*Intent intent = new Intent();
intent.setClass(FirstActivity.this, SecondActivity.class);*/ //通过意图筛选器名称创建Intent
Intent intent = new Intent("cn.luxh.intent.SecondActivity"); //启动新的Activity,新的Activity结束后有结果返回
startActivityForResult(intent, REQUEST_CODE);
}
});
} /**
* startActivityForResult(intent, REQUEST_CODE)启动的新Activity结束调用该方法获取返回值
*/
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode){
case REQUEST_CODE:
if(resultCode == RESULT_OK) {
String username = data.getData().toString();
Log.d(TAG, "返回的数据是:"+username);
Toast.makeText(this,username, Toast.LENGTH_LONG).show();
}
}
} }
package cn.luxh.intent;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText; public class SecondActivity extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
handleBtnSubmitClick();
} /**
* 处理提交按钮点击
*/
private void handleBtnSubmitClick(){
Button btn_submit = (Button) findViewById(R.id.btn_submit);
btn_submit.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//获取输入的用户名
EditText et_username = (EditText) findViewById(R.id.edit_text_username);
String username = et_username.getText().toString();
Intent data = new Intent();
data.setData(Uri.parse(username));
setResult(RESULT_OK, data);//RESULT_OK = -1, operation succeeded
finish();//关闭当前Activity
}
});
}
}

  3)运行效果

Android--Intent的使用的更多相关文章

  1. android Intent介绍

    Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 ...

  2. android:Intent匹配action,category和data原则

    1.当你在androidmanifest里面定义了一个或多个action时 你使用隐式意图其他activity或者service时,规定你隐式里面的action必须匹配XML中定义的action,可以 ...

  3. Android Intent

    Intent在Android中的重要性不言而喻.本文主要总结下Intent使用过程中需要注意的一些问题. 1.隐式Intent AndroidManifest.xml声明时<intent-fil ...

  4. android intent和intent action大全

    1.Intent的用法:(1)用Action跳转1,使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个 Activity的IntentFilter段中 定义了包含了 ...

  5. Android总结篇系列:Android Intent

    Intent在Android中的重要性不言而喻.本文主要总结下Intent使用过程中需要注意的一些问题. 1.隐式Intent AndroidManifest.xml声明时<intent-fil ...

  6. 什么时候加上android.intent.category.DEFAULT

    什么时候加上android.intent.category.DEFAULT 1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent ...

  7. (转)android.intent.action.MAIN与android.intent.category.LAUNCHER

    android.intent.action.MAIN决定应用程序最先启动的Activity android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里 在网上看到 ...

  8. android之android.intent.category.DEFAULT的用途和使用

    1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...

  9. 理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER

    刚才看了一下sundy的视频<LLY110426_Android应用程序启动>,里面讲到luncher这个activity通过获取应用程序信息来加载应用程序,显示给用户,其中就是通过一个应 ...

  10. Android Intent的几种用法全面总结

    Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...

随机推荐

  1. ORACLE的表被 另一个用户锁定,如何解除..

    SELECT object_name, machine, s.sid, s.serial# FROM gv$locked_object l, dba_objects o, gv$session s W ...

  2. 剑指offer系列41---数字在数组中出现的次数

    [题目]统计一个数字在排序数组中出现的次数. package com.exe9.offer; /** * [题目]统计一个数字在排序数组中出现的次数. * @author WGS * */ publi ...

  3. sublime_text3 用户配置

    { "auto_complete_triggers": [ { "characters": "", "selector" ...

  4. Nginx负载均衡和反向代理设置

    Nginx负载均衡: 格式: upstream 别名 {    #别名一般要有意义,能看出是做什么的 server ip:端口;    #要实现负载的服务器的ip.端口号}  例: upstream ...

  5. 【freemaker】之Unknown built-in variable: now

    Caused by: freemarker.core.ParseException: Unknown built-in variable: now 意思是没有内置变量,看了一下源码2.3.15版本fr ...

  6. Linux环境变量文件environment, profile, bashrc含义

    转自:http://www.th7.cn/system/lin/201508/127503.shtml (1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件 ...

  7. [Perl] Getopt 函数来接收用户参数的使用

    我们在linux常常用到一个程序需要加入参数,现在了解一下perl中的有关控制参数的函数.getopt.在linux有的参数有二种形式.一种是–help,另一种是-h.也就是-和–的分别.–表示完整参 ...

  8. 55. Jump Game

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...

  9. 228. Summary Ranges

    Given a sorted integer array without duplicates, return the summary of its ranges. For example, give ...

  10. Objective-C语法汇总

    1.方法前的加减号 Objective-C中是没有public与private的概念的,即可以认为全部都是public.减号表示的是一个函数.方法.消息的开始.加号则表示不需要创建一个类的实例,其他类 ...