Android-Intent简单学习
来源:互联网 发布:日有所思夜有所梦 知乎 编辑:程序博客网 时间:2024/06/11 19:58
- 新建一个Android项目
- 将MainActivity活动布局activity_main.xml文件夹的具体代码修改如下:
界面:
- 新建一个layout文件(布局文件)
其代码:
- 在主活动包中在新建一个活动类(java类)
其代码:
package com.example.activitytest;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;public class Act2 extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.atc2_layout); //加载活动界面 TextView tv = (TextView)findViewById(R.id.textView1); //实例化一个TextView String s = this.getIntent().getExtras().getString("words"); //接受Intent实例传递过来的数据 tv.setText(s); //tv显示接受的数据 }}
- 修改主活动(新建项目时默认的活动)代码:
package com.example.activitytest;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Menu;import android.view.MenuItem;import android.view.View;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("life cycle onCreate", "onCreate"); } //响应按钮单击事件 public void onClick(View view) { Intent intent = new Intent(this, Act2.class); intent.putExtra("words", "hi,The message com from MainActivity"); //传递数据给Act2 startActivity(intent); //传递intent对象到Act2 }}
- Intent的简单学习(以下大部分内容来自lingdududu 的BLOG):
一. Intent的介绍
Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯, Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。 Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,可以将Intent理解为不同组件之间通信的“媒介”专门提供组件互相调用的相关信息。
intent 分为两类Explicit Intents(直接意图)和Implicit Intents(间接意图)两种方式:
直接意图:指定了要调用的组件,一般用在程序内部,或者明确知道组件名,上面例子便是用的直接组件
Intent i = new Intent(this, ActivityTwo.class);i.putExtra("value", "This value one for ActivityTwo");
间接意图:没有指定具体组件,这些Intent包含足够的信息,系统根据这些信息,调用某些组件。
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://developer.android.com"));startActivity(i);
二. Intent的属性
Intent有以下几个属性:
动作(Action),数据(Data),分类(Category),类型(Type),组件(Compent)以及扩展信(Extra)。其中最常用的是Action属性和Data属性。这里只是讲一下Extra:
Intent的Extra属性是添加一些组件的附加信息。实现不同Activity之间的信息传递:
intent提供putExtra()方法, 和getExtra();
—————————————————————————————————————
例二:间接意图
- 主活动界面代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="say hi to Act2" android:onClick="onClick" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Baidu" android:onClick="onClick1" /></LinearLayout>
- 主活动java代码
package com.example.activitytest;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;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Log.d("life cycle onCreate", "onCreate"); } //响应按钮单击事件 直接意图 public void onClick(View view) { Intent intent = new Intent(this, Act2.class); intent.putExtra("words", "hi,The message com from MainActivity"); //传递数据给Act2 startActivity(intent); //传递intent对象到Act2 } //响应按钮单击事件 直接意图 public void onClick1(View view) { //浏览网页 Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com")); startActivity(intent); } public void onClick2(View view) { //打电话 Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:(+86)10086")); startActivity(intent); } public void onClick3(View view) { //拨号 Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:(+86)10086")); startActivity(intent); } public void onClick4(View view) { //写短信 Intent intent = new Intent(Intent.ACTION_VIEW); intent.putExtra("sms_body", "The SMS text"); intent.setType("vnd.android-dir/mms-sms"); startActivity(intent); } public void onClick5(View view) { //发短信 Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:10086")); intent.putExtra("sms_body", "The sms message"); startActivity(intent); } public void onClick6(View view) { //照相机 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); startActivity(intent); }}
- 在AndroidMainfest.xml中注册使用权限,输入以下内容:
<uses-permission android:name="android.permission.INTERNE" />
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com"));//浏览网页Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:(+86)10086"));//打电话Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:(+86)10086"));//拨号Intent intent = new Intent(Intent.ACTION_VIEW);intent.putExtra("sms_body", "The SMS text");intent.setType("vnd.android-dir/mms-sms");//写短信Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.parse("smsto:10086));intent.putExtra("sms_body", "The sms message");//发短信Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");//照相机
下面是注册权限
<uses-permission android:name="android.permission.INTERNE" /> //网络权限<uses-permission android:name="android.permission.CAMERA" /> //照相机权限<uses-permission android:name="android.permission.SEND_SMS" /> //发短信权限<uses-permission android:name="android.permission.WRITE_SMS" /> //打电话权限<uses-permission android:name="android.permission.CALL_PHONE" /> //写短信权限
- Android-Intent简单学习
- android学习之intent跳转二简单消息回传
- Android初级学习之Intent的简单使用
- Android学习笔记--Intent
- Android Intent 机制学习
- Android学习 - Intent使用
- Android Intent 学习
- Android Intent学习
- android Intent学习总结
- Android的Intent学习
- android学习:intent/filter
- android学习笔记---Intent
- Android Intent学习总结
- Android Intent学习总结
- Android之Intent学习
- Android Intent 源码学习
- Android学习笔记 - Intent
- Android学习 - intent frag
- ACE-IP包装ACE_INET_Addr类
- scrapy framework
- vb
- hdu 5175 思维
- 线性表的顺序动态存储——C语言实现简单函数
- Android-Intent简单学习
- Tomcat的安装与卸载
- NOIP2017 检查清单
- 计算C(2n, n)
- Luogu 3371(dijkstra堆优化)
- HELLO,21
- 浅谈几种服务器端模型——同步阻塞迭代
- Linux环境下mosquitto的安装及部分问题解决方法
- 【模板】最长公共子序列