Android--Intent的使用
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的使用的更多相关文章
- android Intent介绍
Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作.动作涉及数据.附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 ...
- android:Intent匹配action,category和data原则
1.当你在androidmanifest里面定义了一个或多个action时 你使用隐式意图其他activity或者service时,规定你隐式里面的action必须匹配XML中定义的action,可以 ...
- Android Intent
Intent在Android中的重要性不言而喻.本文主要总结下Intent使用过程中需要注意的一些问题. 1.隐式Intent AndroidManifest.xml声明时<intent-fil ...
- android intent和intent action大全
1.Intent的用法:(1)用Action跳转1,使用Action跳转,如果有一个程序的AndroidManifest.xml中的某一个 Activity的IntentFilter段中 定义了包含了 ...
- Android总结篇系列:Android Intent
Intent在Android中的重要性不言而喻.本文主要总结下Intent使用过程中需要注意的一些问题. 1.隐式Intent AndroidManifest.xml声明时<intent-fil ...
- 什么时候加上android.intent.category.DEFAULT
什么时候加上android.intent.category.DEFAULT 1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent ...
- (转)android.intent.action.MAIN与android.intent.category.LAUNCHER
android.intent.action.MAIN决定应用程序最先启动的Activity android.intent.category.LAUNCHER决定应用程序是否显示在程序列表里 在网上看到 ...
- android之android.intent.category.DEFAULT的用途和使用
1.要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent. Explicit Intent明确的指定了要启动的Acitivity , ...
- 理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER
刚才看了一下sundy的视频<LLY110426_Android应用程序启动>,里面讲到luncher这个activity通过获取应用程序信息来加载应用程序,显示给用户,其中就是通过一个应 ...
- Android Intent的几种用法全面总结
Android Intent的几种用法全面总结 Intent, 用法 Intent应该算是Android中特有的东西.你可以在Intent中指定程序要执行的动作(比如:view,edit,dial), ...
随机推荐
- 文件/文件夹比较工具 beyond compare 3.3.10
- linux 命令之系统活动报告sar
打开自己的CentOS,敲入“sar”,表示很失望: [root@localhost ~]# sar bash: sar: command not found 竟然没有安装,不过还好linux下安装还 ...
- C#分析搜索引擎URL得到搜索关键字,并判断页面停留时间以及来源页面
前台代码: var start; var end; var state; var lasturl = document.referrer; start = new Date($.ajax({ asyn ...
- cocoapods的安装及注意事项
cocoapods是运行在ruby环境下的,在ruby环境的 ,像cocoapods这样的开源项目时放在放在rubygems服务器上面的,但国内访问https://rubygems.org/ 的时候会 ...
- UI-程序的运行顺序
在AppDelegate.m里面的每个方法里都输入(包括main文件里也输入) NSLog(@"%s %d”,__func__,__LINE__); __func__ :代表使用的方法 __ ...
- Java 提示 JRE unbound 或者 Tomcat unbound 解决方法
解决步骤 1.右键你的项目>>build path>>config build path 2. 选中显示 unbound的 Libraries >>Edit 如下图 ...
- butterknife 使用注意事项
写了个demo,一直报错 Caused by: java.lang.IllegalStateException: Required view 'tv1' with ID 2131492943 for ...
- onclick事件对动态参数类型为字符串的处理
onclick="solveRow("'+row.isbesolve+'")"
- IREP_SOA Integration程序注释语法Annotations(概念)
20150506 Created By BaoXinjian
- Oracle数据库 External component has thrown an exception
出现这种错误一般是在SQL语句执行前就报出的错误.这样的错误一般需要仔细检查SQL语句,以及参数的数据类型. 而在cmd.ExecuteNonQuery()中出现的错误,则很可能就排除了语法类的错误. ...