intent

Android零基础入门第81节:Activity数据传递

情到浓时终转凉″ 提交于 2019-11-28 12:05:17
在Android开发中,经常要在Activity之间传递数据。前面也学习了Activity和Intent相关基础,接下来一起来学习Activity的数据传递。 一、简介 通过前面的学习知道,Intent可以用来开启Activity,同样它也可以用来在Activity之间传递数据。Intent提供了多个重载的方法来携带额外的数据,如下所示。 putExtra(String name, xxx value):向 Intent 中按 key-value 对的形式存入数据。 getXxxExtra(String name):从Intent中按key取出指定类型的数据。 putExtras(Bundle data):向Intent中放入需要携带的数据包。 Bundle getExtras():取出Intent中所携带的数据包。 使用Intent传递数据只需调用putExtra()方法将想要存储的数据存在Intent中即可。当启动了另一个Activity后,再把这些数据从Intent中取出即可。其核心示例代码如下: // 从MainActivity传递数据到SecondActivity Intent intent=new Intent(MainActivity.this,SecondActivity.class); String name="admin "; intent.putExtra(

Android零基础入门第79节:Intent 属性详解(上)

跟風遠走 提交于 2019-11-28 12:05:03
Android应用将会根据Intent来启动指定组件,至于到底启动哪个组件,则取决于Intent的各属性。本期将详细介绍Intent的各属性值,以及 Android如何根据不同属性值来启动相应的组件。 Intent 对象大致包含 Component、Action、Category、Data、Type、Extra 和 Flag 这 7 种属性,其中Component用于明确指定需要启动的目标组件,而Extra则用于携带需要交换的数据。 一、Component属性 Intent 的 Component 属性需要接受一个 ComponentName 对象,ComponentName 对象包含如下几个构造器。 ComponentName(String pkg, String cls):创建pkg所在包下的cls类所对应的组件。 ComponentName(Context pkg, String cls):创建pkg所对应的包下的cls类所对应的组件。 ComponentName(Context pkg, Class<?> cls):创建 pkg 所对应的包下的 cls 类所对应的组件。 上面几个构造器的本质是相同的,这说明创建一个ComponentName需要指定包名和类名。这样就可以唯一地确定一个组件类,这样应用程序即可根据给定的组件类去启动特定的组件。 除此之外

android用于打开各种文件的intent,包括以下文件PDF,PPT,WORD,EXCEL...

余生颓废 提交于 2019-11-28 12:04:37
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File; import android.content.Intent; //自定义android Intent类, //可用于获取打开以下文件的intent //PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,VIDEO public class MyIntent { //android获取一个用于打开HTML文件的intent public static Intent getHtmlFileIntent( String param ) { Uri uri = Uri.parse(param ).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build(); Intent intent = new Intent("android.intent.action.VIEW"); intent.setDataAndType(uri, "text

AndroidManifest.xml配置详解

情到浓时终转凉″ 提交于 2019-11-28 10:01:42
AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.xml文件样例。 [html] view plain copy print ? <? xml version = "1.0" encoding = "utf-8" ?> < manifest > <!-- 基本配置 --> < uses-permission /> < permission /> < permission-tree /> < permission-group /> < instrumentation /> < uses-sdk /> < uses-configuration /> < uses-feature /> < supports-screens /> < compatible-screens /> < supports-gl-texture /> <!-- 应用配置 --> < application > <!-- Activity 配置 --> < activity > < intent-filter > < action /> < category /> < data /> </ intent-filter > < meta-data /> </

Android 调用相机、相册功能

我的未来我决定 提交于 2019-11-28 03:31:58
清单文件中增加对应权限,动态申请权限(此部分请参考 Android 动态申请权限 ,在此不作为重点描述) private static final int REQUEST_CODE_ALBUM = 100;//打开相册private static final int REQUEST_CODE_CAMERA = 101;//打开相机 //调用相册private void openAlbum(){ Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); startActivityForResult(intent, REQUEST_CODE_ALBUM);} //调用相机private void openCamera1(){ Intent intent; intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, REQUEST_CODE_CAMERA);} @Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) { super

【编程语言】Kotlin之扩展函数

南楼画角 提交于 2019-11-28 02:42:39
简介: 平时Android开发中会使用各种各样的工具类函数,大部分工具类都是对原有对象的一种扩展,例如: public static void startActivity(Activity act, Class clz){ Intent intent = new Intent(act, clz); act.startActivity(intent); } 对于这种形式,Kotlin给与我们提供更加方便的调用形式,不需要在调用的时候传入操作对象(例如上面代码的Activity类型函数形参),这就是扩展函数。 举个简单的例子:对于上面的工具类,在Kotlin中可以这样调用:act.startActivity(NewActivity.class),为了实现这种方便的调用,需要在Kotlin中做一些必要的工作。 fun Any.funcName(): String {} inline Any.funcName(): String {} fun Any.funcName() = this.apply {} 上面是扩展函数的一般格式,例如我们现在用Kotlin扩展函数重新为上面的工具类写一份Kotlin版本的: fun Activity.startActivity(Class clz) { Intent intent = new Intent(this, clz); this

Android Intent使用seData导致Broadcast无法发送

流过昼夜 提交于 2019-11-28 02:38:29
我们经常可以使用Intent.setData(Uri)来启动一个Activity。 所以我在发送一个Broadcast的时候,也使用Intent.setData(Uri)来实现,结果导致Broadcast无法发送成功,后来还是需要使用putStringExtra作为String保存。 转载于:https://www.cnblogs.com/BlueVienna/archive/2013/03/16/2962417.html 来源: https://blog.csdn.net/weixin_30585437/article/details/99921376

Android 中的content(个人见解)

女生的网名这么多〃 提交于 2019-11-28 02:16:19
Context是什么? 1) Context是一个抽象类,其通用实现在ContextImpl类中。 2) Context:是一个访问application环境全局信息的接口,通过它可以访问application的资源和相关的类,其主要功能如下: 启动Activity 启动和停止Service 发送广播消息(Intent) 注册广播消息(Intent)接收者 可以访问APK中各种资源(如Resources和AssetManager等) 可以访问Package的相关信息 APK的各种权限管理 从以上分析可以看出,Context就是一个对APK包无所不知的大管家,大家需要什么,直接问它就可以了。(这篇文章是我在csdn中的谋篇文章看到的,总结的不错) 在上面我们看到了conntent的功能和作用下面就是我自己的一些理解 context 在很多地方都会用到,入Dialog、RecyclerView的onCreateView方法中的 View view = Layout.from(parent.getcontent()).inflate.(R.layout.Recycle,parent,flase) 和Intent intent = new Intent(context,NewsContentActivity.class)等这些方法都会用到content, 1) 创建Application

AndroidStudio Intent数据传送

一世执手 提交于 2019-11-28 01:26:21
Intent传值 第一个界面发送数据 Intent intent=new Intent(MainActivity.this,Address.class); intent.putExtra("integer",5); intent.putExtra("double",2.55); intent.putExtra("string","test"); 第二个界面接收数据 Intent intent=getIntent(); Integer driverid=intent.getIntExtra("driverid",0); double finalMoney1= intent.getDoubleExtra("money",0); String string=intent1.getStringExtra("string"); 通过Bundle 第一个界面发送数据: Intent intent=new Intent(MainActivity.this,Address.class); Bundle bundle=new Bundle(); bundle.putCharSequence("name","test"); bundle.putInt("Int",2); bundle.putDouble("double1",2.257); bundle.putString("string","main

TextView中超链接拦截

懵懂的女人 提交于 2019-11-28 00:24:10
TextView中的超链接点击时,其实是通过Intent方式的,因此会调用Activity中的startActivity(Intent intent)方法,所以可在此方法中做些简单的拦截操作 例如拦截Intent.ACTION_VIEW操作 @Override public void startActivity(Intent intent) { //此处拦截到url使用应用内部webview打开 if(TextUtils.equals(intent.getAction(), Intent.ACTION_VIEW)){ String dataString = intent.getDataString(); if (!TextUtils.isEmpty(dataString)) { if (dataString.startsWith("mailto")) { PackageManager pm = getPackageManager(); List<ResolveInfo> activities = pm.queryIntentActivities(intent, 0); if (activities == null || activities.size() == 0) { CustomToast.makeText(mContext, R.string.no_mail_app,