Android入门之Intent

2024-08-21 23:48
文章标签 android 入门 intent

本文主要是介绍Android入门之Intent,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、使用Intent连接Activity

       说明:1)新建一个SecondActivity.java文件,并新建一个相应的xml文件。在AndroidManifest.xml文件中</activity>下面一行,<appliction>内部添加:

<activity android:name=”.SecondActivity”></activity>                                    

       2)在main.xml文件中新建一个Button,在MainActivity.java文件中,设置该button的setOnClickListener,在监听器中添加:

startActivity(new Intent(MainActivity.this,SecondActivity.class));                 

       解释:startActivity(newIntent(MainActivity.this,SecondActivity.class)); 等同于:

Intent intent = new Intent(MainActivity.this,SecondActivity.class);              

startActivity(intent);                                                                                              

Intent类的实例还可以通过setData方法、Uri.parse方法、setType方法传入数据。

      

2、使用Intent返回结果

       说明:1)调用一个Activity并等待从此Activity返回结果,需要用到startActivityForResult方法,除了传入Intent对象还需要请求码参数。请求码只是一个用来标识正在调用的Activity的整数值,但是是必须的。

       2)为了使被调Activity可以返回一个值给调用它的Activity,可以通过Intent对象的setData方法回调数据。

       3)在调用者Activity中必须要实现onActivityResult方法,其中的resultCode对比的参数是被调用者Activity中的setResult方法设置的结果码(RESULT_OK或RESULT_CANCEL)

 

public class MainActivity extends Activity {public int REQUEST_CODE = 1;//请求码仅仅是一个整数值,用来标识正在调用的活动,这是必须的@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button toSecond = (Button)super.findViewById(R.id.btn_toSecond);toSecond.setOnClickListener(new View.OnClickListener() {			@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this,SecondActivity.class);startActivityForResult(intent, REQUEST_CODE);}});}public void onActivityResult(int resquestCode, int resultCode,Intent data){if (resquestCode == REQUEST_CODE) {if (resultCode == RESULT_OK) {Toast.makeText(this, data.getData().toString(), Toast.LENGTH_SHORT).show();}}}
}
public class SecondActivity extends Activity {private EditText username;private Button btn_ok;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.second);	btn_ok = (Button)findViewById(R.id.btn_ok);		btn_ok.setOnClickListener(new View.OnClickListener() {		@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent data = new Intent();		username = (EditText)findViewById(R.id.username);data.setData(Uri.parse(username.getText().toString()));setResult(RESULT_OK,data);finish();}});}
}

3、使用Intent传递数据

       方法一:

【存】

Intent intent = new Intent();                

intent.putExtra(“age”,25);                   

intent.putExtra(“name”,”Logen”);  

【取】

getIntent().getIntExtra(“age”,0);        

getIntent().getStringExtra(“name”); 

       方法二:

【存】

Bundle extras = new Bundle();                

extras.putInt(“price”,250);                         

extras.putString(“supplier”,”Microfote”); 

【 取】

getIntent().getInt(“price”);                         

getIntent().getString(“supplier”);            

       方法三:

【存】

Intent i = new Intent();

i.setData(Uri.parse(“Something passed backto main activity”));

【取】

Intent data = new Intent();

data.getData().toString();


4、使用Intent调用内置应用程序

说明:

ACTION_DIAL和ACTION_CALL的区别:

1,调拨打电话界面并播下指定号码,但没有打出
Intent i = new Intent(android.conatent.Intent.ACTION_DIAL,Uri.parse(“tel:10086”)); 

startActivity(i);

2.直接拨打电话 
Intent i = new Intent(android.conatent.Intent.ACTION_CALL,Uri.parse(“tel:10086”)); 

startActivity(i);

 

其他的:

❑ ACTION_ANSWER

打开一个Activity来处理来电。目前,它是被本地的电话拨号工具处理。

 

❑ ACTION_CALL

启动电话拨号工具,并立即用数据URI中的号码初始化一个呼叫。一般来说,如果可能的话,它认为是比使用Dial_Action好的一种方式。

 

❑ ACTION_DELETE

启动一个Activity来让你删除储存在URI位置的数据入口。

 

❑ ACTION_DIAL

启动一个电话拨号程序,使用预置在数据URI中的号码来拨号。默认情况下,它是由Android本地的电话拨号工具处理。这个拨号工具能规范多数的号码;举个例子,tel:555-1234和tel:(212)555 1212都是有效的号码。

 

❑ ACTION_EDIT

请求一个Activity来编辑URI处的数据。

 

❑ ACTION_INSERT

打开一个能在数据域的特定游标处插入新项目的Activity。当以子Activity方式调用时,它必须返回新插入项目的URI。

 

❑ ACTION_PICK

启动一个子Activity来让你从URI数据处挑选一个项目。当关闭时,它必须返回指向被挑选项目的URI。启动的Activity取决于要挑选的数据;例如,传入content://contacts/people会引发本地的联系人列表。

 

❑ ACTION_SEARCH

启动一个UI来执行搜索。在Intent的数据包里使用SearchManager.QUERY键值来提供搜索内容的字符串。

 

❑ ACTION_SENDTO

启动一个Activity来给URI中的指定联系人发送一个消息。

 

❑ ACTION_SEND

启动一个Activity来发送特定的数据(接收者经由解析Activity来选择)。使用setType来设置Intent的类型为传输数据的mime类型。

数据本身依赖于类型使用EXTRA_TEXT或EXTRA_STREAM来储存。在e-mail的情况下,Android本地应用程序还可以接受使用EXTRA_EMAIL, EXTRA_CC,EXTRA_BCC, 和EXTRA_SUBJECT键值的extras。

 

❑ ACTION_VIEW

最通用的动作。View动作要求Intent URI中的数据以最合理的方式显示。不同的应用程序将处理View请求,依赖于URI中的数据。一般的,http:地址会在浏览器中打开,tel:地址会在拨号工具中打开并呼叫号码,geo:地址会在Google地图应用程序中显示,联系人内容会在联系人管理器中显示。

 

❑ ACTION_WEB_SEARCH

打开一个Activity,执行基于数据URI中文本的网页搜索。

 示例:

在main.xml中定义三个按钮,并设置他们的onClick属性:

<Buttonandroid:id="@+id/btn_webbrowser"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickWebBrowser"android:layout_alignParentTop="true"android:layout_centerHorizontal="true"android:text="Web Browser" /><Buttonandroid:id="@+id/btn_makecalls"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickMakeCalls"android:layout_below="@id/btn_webbrowser"android:layout_centerHorizontal="true"android:text="Make calls" /><Buttonandroid:id="@+id/btn_googleMap"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="onClickShowMap"android:layout_below="@id/btn_makecalls"android:layout_centerHorizontal="true"android:text="Show GoogleMap" />

在MainActivity.java中的public类中添加下面的方法:

public void onClickWebBrowser(View v){Intent i = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("http://www.google.com"));startActivity(i);
}public void onClickMakeCalls(View v){Intent i = new Intent(android.content.Intent.ACTION_DIAL,Uri.parse("tel:+8615989159661"));startActivity(i);
}public void onClickShowMap(View v){Intent i = new Intent(android.content.Intent.ACTION_VIEW,Uri.parse("geo:37.827501,-122.481670"));startActivity(i);
}



这篇关于Android入门之Intent的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1094639

相关文章

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Android WebView的加载超时处理方案

《AndroidWebView的加载超时处理方案》在Android开发中,WebView是一个常用的组件,用于在应用中嵌入网页,然而,当网络状况不佳或页面加载过慢时,用户可能会遇到加载超时的问题,本... 目录引言一、WebView加载超时的原因二、加载超时处理方案1. 使用Handler和Timer进行超

Spring Security 从入门到进阶系列教程

Spring Security 入门系列 《保护 Web 应用的安全》 《Spring-Security-入门(一):登录与退出》 《Spring-Security-入门(二):基于数据库验证》 《Spring-Security-入门(三):密码加密》 《Spring-Security-入门(四):自定义-Filter》 《Spring-Security-入门(五):在 Sprin

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

Android平台播放RTSP流的几种方案探究(VLC VS ExoPlayer VS SmartPlayer)

技术背景 好多开发者需要遴选Android平台RTSP直播播放器的时候,不知道如何选的好,本文针对常用的方案,做个大概的说明: 1. 使用VLC for Android VLC Media Player(VLC多媒体播放器),最初命名为VideoLAN客户端,是VideoLAN品牌产品,是VideoLAN计划的多媒体播放器。它支持众多音频与视频解码器及文件格式,并支持DVD影音光盘,VCD影

数论入门整理(updating)

一、gcd lcm 基础中的基础,一般用来处理计算第一步什么的,分数化简之类。 LL gcd(LL a, LL b) { return b ? gcd(b, a % b) : a; } <pre name="code" class="cpp">LL lcm(LL a, LL b){LL c = gcd(a, b);return a / c * b;} 例题:

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

【IPV6从入门到起飞】5-1 IPV6+Home Assistant(搭建基本环境)

【IPV6从入门到起飞】5-1 IPV6+Home Assistant #搭建基本环境 1 背景2 docker下载 hass3 创建容器4 浏览器访问 hass5 手机APP远程访问hass6 更多玩法 1 背景 既然电脑可以IPV6入站,手机流量可以访问IPV6网络的服务,为什么不在电脑搭建Home Assistant(hass),来控制你的设备呢?@智能家居 @万物互联

poj 2104 and hdu 2665 划分树模板入门题

题意: 给一个数组n(1e5)个数,给一个范围(fr, to, k),求这个范围中第k大的数。 解析: 划分树入门。 bing神的模板。 坑爹的地方是把-l 看成了-1........ 一直re。 代码: poj 2104: #include <iostream>#include <cstdio>#include <cstdlib>#include <al

MySQL-CRUD入门1

文章目录 认识配置文件client节点mysql节点mysqld节点 数据的添加(Create)添加一行数据添加多行数据两种添加数据的效率对比 数据的查询(Retrieve)全列查询指定列查询查询中带有表达式关于字面量关于as重命名 临时表引入distinct去重order by 排序关于NULL 认识配置文件 在我们的MySQL服务安装好了之后, 会有一个配置文件, 也就