使用Intent在活动之间穿梭
来源:互联网 发布:淘宝新人礼包是什么 编辑:程序博客网 时间:2024/06/09 13:43
直接上代码,一些方法的应用在代码中有简要注释~~
FristActivity
package com.example.activitytest;import com.example.activitytest.R;import android.app.Activity;import android.content.Intent;import android.net.Uri;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.Toast;public class FirstActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//不在活动中显示标题栏,注意这句代码一定要在setContentView()之前执行。requestWindowFeature(Window.FEATURE_NO_TITLE);//在活动中加载这个布局setContentView(R.layout.first_layout);Button button = (Button) findViewById(R.id.button1);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {//Toast.makeText(FirstActivity.this, "You clicked Button 1", Toast.LENGTH_SHORT).show();/*========显式intent========*///Intent intent = new Intent(FirstActivity.this,SecondActivity.class);//intent.putExtra("name","oneFortwo");//startActivity(intent);/*========隐式Intent========*///怎么没看到匹配指定的category呢?因为android.intent.category.DEFAULT是一种默认的category,调用时自动添加//Intent intent = new Intent("com.example.activitytest.ACTION_START");//也可自定义category//intent.addCategory("android.intent.category.MY_CATEGORY");//intent.putExtra("name","oneFortwo");//startActivity(intent);/*========更多隐式Intent========*///Intent.ACTION_VIEW,系统内置动作//通过Uri.parse()方法,将一个网址字符串解析成一个Uri对象//再调用setDats()方法将这个Uri对象传递//Intent intent = new Intent(Intent.ACTION_VIEW);//intent.setData(Uri.parse("http://www.baidu.com"));//startActivity(intent);//这又是一个内置动作,data部分的协议时Tel//Intent intent = new Intent(Intent.ACTION_VIEW);//intent.setData(Uri.parse("tel:10086"));//startActivity(intent);/*========传递数据和返回数据给上一个活动========*/Intent intent = new Intent(FirstActivity.this,SecondActivity.class);//向secondActivity传递数据intent.putExtra("name","oneFortwo");//第二个参数为请求码,只要传入唯一值即可startActivityForResult(intent, 1);}});Button backButton = (Button) findViewById(R.id.back);backButton.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Log.d("back", "销毁");finish();}});}/** * 获取返回结果 */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {switch (requestCode) {case 1:if(resultCode == RESULT_OK){String returnData = data.getStringExtra("data_return");Toast.makeText(this, returnData, Toast.LENGTH_SHORT).show();Log.d("FirstActivity", returnData);}break;default:break;}}/** * R.menu.main:表示通过哪一个资源文件来创建菜单 * 第二个参数用于指定添加到哪一个menu中 * 返回true显示 * * */@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {//获取哪一个菜单项switch (item.getItemId()) {case R.id.add_item:Toast.makeText(this, "you click Add", Toast.LENGTH_SHORT).show();break;case R.id.remove_item:Toast.makeText(this, "you click Remove", Toast.LENGTH_SHORT).show();break;default:break;}return true;}}SecondActivity
package com.example.activitytest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.Window;import android.widget.Button;import android.widget.Toast;public class SecondActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);setContentView(R.layout.second_layout);Intent intent = getIntent();//接收firstActivity传来的数据Toast.makeText(this, intent.getStringExtra("name"), Toast.LENGTH_SHORT).show();//传递返回数据Button button = (Button) findViewById(R.id.button2);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {Intent intent1 = new Intent();intent1.putExtra("data_return", "hello FirstActivity");//此方法专门用于向上级返回数据setResult(RESULT_OK,intent1);finish();}});}@Overridepublic void onBackPressed() {Intent intent1 = new Intent();intent1.putExtra("data_return", "hello FirstActivity from onBackPress");//此方法专门用于向上级返回数据setResult(RESULT_OK,intent1);finish();}}
package com.example.activitytest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Window;import android.widget.Toast;public class ThirdActivity extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}}AndroidManifest.xml实现对活动进行注册
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.activitytest" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- 注册activity --> <activity android:name=".FirstActivity" android:label="this is FirstActivity"> <intent-filter> <!-- 表示这个项目的主活动,手机上点击应用图标,首先启动的就是这个活动--> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <!-- 隐式intent,它并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的action和 category等信息,然后交由系统去分析这个Intent,并帮我们找出合适的活动区启动 只有<action>,<category>中的内容同时能够匹配上Intent中指定的action,category时,这个活动才能响应Intent--> <activity android:name=".SecondActivity"> <intent-filter> <action android:name="com.example.activitytest.ACTION_START"/> <!-- 默认的category --> <category android:name="android.intent.category.DEFAULT"/> <!--自定义category --> <category android:name="android.intent.category.MY_CATEGORY"/> </intent-filter> </activity> <activity android:name=".ThirdActivity"> <intent-filter> <action android:name="android.intent.action.VIEW"/> <!-- 默认的category --> <category android:name="android.intent.category.DEFAULT"/> <!--android:scheme指定了数据的协议必须时http协议,这样ThirdActivity就和浏览器啊一样了 --> <data android:scheme="http"/> </intent-filter> </activity> </application></manifest>三个布局文件first_layout.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" > <!-- android:id 定义一个唯一的标识符 android:layout_width 指定了当前元素的宽度,match_parent:表示让当前元素和父元素一样宽 android:layout_height 指定了当前元素的高度,wrap_content表示当前元素的高度只要能刚好包含里面的内容就行 android:text:指定了显示的内容 --> <Button android:id="@+id/button1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/buttonName1" /> <Button android:id="@+id/back" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Back" /> </LinearLayout>second_layout.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" > <Button android:id="@+id/button2" android:layout_width="match_parent" android:layout_height="wrap_content"android:text="Button2" /> </LinearLayout>third_layout.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" > <!-- android:id 定义一个唯一的标识符 android:layout_width 指定了当前元素的宽度,match_parent:表示让当前元素和父元素一样宽 android:layout_height 指定了当前元素的高度,wrap_content表示当前元素的高度只要能刚好包含里面的内容就行 android:text:指定了显示的内容 --> <Button android:id="@+id/button3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button3" /> </LinearLayout>
0 0
- 使用Intent在活动之间穿梭
- 使用Intent在活动之间穿梭(Intent初识)
- 第2章 使用Intent在活动之间穿梭
- Android 一一 Intent在活动之间穿梭
- 使用Intent在活动间穿梭 --7
- 使用Intent在活动间穿梭
- 使用intent在活动之间穿梭——使用显式Intent
- 使用intent在活动之间穿梭——使用隐式Intent
- 活动——Intent在活动之间穿梭
- 【Android成长之路】Intent初体验—使用Intent 在活动之间穿梭(一)
- 使用 Intent 在 Activity 之间穿梭
- 使用 Intent 在 Activity 之间穿梭
- Android之Activity(二):使用Intent在活动之间穿梭
- 第一行安卓代码——使用Intent在活动之间穿梭2.3
- Android学习 (三) 在活动之间穿梭之Intent
- 安卓学习笔记(三)使用Intent在活动中穿梭
- 第一行代码系列第二章——使用显式Intent在活动中穿梭
- Android 使用Intent在活动之间传递数据
- 理解MySQL——架构与概念
- Dynamic Searchable Encryption via Blind Storage (2)
- iOS中安全保存用户名或密码的方法
- [LeetCode 134]Gas Station
- 理解MySQL——索引与优化
- 使用Intent在活动之间穿梭
- 存mac地址实际上用6个字节/字符就OK了
- String.format()用法
- 理解MySQL——复制(Replication)
- iOS系列博文
- Min Stack
- 理解MySQL——并行数据库与分区(Partition)
- CheatEngine561
- 浅谈mysql的两阶段提交协议