安卓学习之意图
作者:访客发布时间:2024-02-14分类:程序开发学习浏览:181
导读:意图Intent是安卓程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可被用于启动活动、启动服务以及发送...
意图
Intent是安卓程序中各组件之间进行交互的一种重要方式,它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据。Intent一般可被用于启动活动、启动服务以及发送广播等场景,
显示意向
- 第一个参数上下文要求提供一个启动活动的上下文
- 第二个参数类则是指定想要启动的目标活动,
专门用于启动活动
StartActivity()方法
配置好第二个活动后,在主活动里配置以下,主要是Intent那两行
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Toast.makeText(MainActivity.this, "you clicked 1", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(MainActivity.this, second_activity.class);
startActivity(intent);
}
});
隐式意向
它并不明确指出我们想要启动哪一个活动,而是指定了一系列更为抽象的Actions和类别等信息,然后交由系统去分析这个Intent,并帮我们找岀合适的活动去启动。
怎么操作呢?
通过在标签下配置的内容,可以指定当前活动能够响应的操作和类别,打开AndreidManifest.xml
<activity
android:name=".second_activity"
android:exported="true">
<intent-filter>
<action android:name="com.example.intent.MainActivity"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
只有<;action>和
应用程序打开浏览器
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
SetData()接收一个url对象,主要用于指定当前Intent正在操作的数据,而这些数据通常都是以字符串的形式传入到Uri.parse()方法中解析产生的。
标签
- 安卓:方案用于指定数据的协议部分,如上例中的http部分。
- 安卓:主持人用于指定数据的主机名部分,如上例中的www.bai du.com部分
- 安卓:用于指定数据的端口部分,一般紧随在主机名之后端口
- 安卓:Path用于指定主机名和端口之后的部分,如一段网址中跟在域名之后的内容
- 安卓:MimeType用于指定可以处理的数据类型,允许使用通配符的方式进行指定
传递数据
Intent中提供了一系列Put ExtraO方法的重载,可以把我们想要传递的数据暂存在Intent中,启动了另一个活动后,只需要把这些数据再从Intent中取岀就可以了。
以上所有代码合集:
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/**
* 响应Toast
*/
// Toast.makeText(MainActivity.this, "you clicked 1", Toast.LENGTH_SHORT).show();
/**
* 显式Intent
*/
// Intent intent = new Intent(MainActivity.this, second_activity.class);
// startActivity(intent);
/**
* 隐式intent
*/
// Intent intent = new Intent("com.example.intent.MainActivity");
// intent.addCategory("com.example.intent.MY_CATEGORY");
// startActivity(intent);
/**
* 打开浏览器
*/
// Intent intent = new Intent(Intent.ACTION_VIEW);
// intent.setData(Uri.parse("http://www.baidu.com"));
// startActivity(intent);
/**
* 调动拨号
*/
// Intent intent = new Intent(Intent.ACTION_DIAL);
// intent.setData(Uri.parse("tel: 10086"));
// startActivity(intent);
/**
* 传递数据
*/
// String data = "hello SecondActivity";
// Intent intent = new Intent(MainActivity.this, second_activity.class);
// intent.putExtra("extra_data", data);
// startActivity(intent);
}
});
传递数据时另外一个活动代码:
/**
* 接受数据代码
*/
Intent intent = getIntent();
String data = intent.getStringExtra("extra_data");
Log.d("SecondActivity", data);
- 上一篇:活动的生命周期
- 下一篇:2023年年终总结|社恐的我终于领证了
- 程序开发学习排行
-
- 1鸿蒙HarmonyOS:Web组件网页白屏检测
- 2HTTPS协议是安全传输,为啥还要再加密?
- 3HarmonyOS鸿蒙应用开发——数据持久化Preferences
- 4记解决MaterialButton背景颜色与设置值不同
- 5鸿蒙HarmonyOS实战-ArkUI组件(RelativeContainer)
- 6鸿蒙HarmonyOS实战-ArkUI组件(Stack)
- 7[Android][NDK][Cmake]一文搞懂Android项目中的Cmake
- 8Android广播如何解决Sending non-protected broadcast问题
- 9鸿蒙HarmonyOS实战-ArkUI组件(mediaquery)
- 最近发表
-
- WooCommerce最好的WordPress常用插件下载博客插件模块的相关产品
- 羊驼机器人最好的WordPress常用插件下载博客插件模块
- IP信息记录器最好的WordPress常用插件下载博客插件模块
- Linkly for WooCommerce最好的WordPress常用插件下载博客插件模块
- 元素聚合器Forms最好的WordPress常用插件下载博客插件模块
- Promaker Chat 最好的WordPress通用插件下载 博客插件模块
- 自动更新发布日期最好的WordPress常用插件下载博客插件模块
- WordPress官方最好的获取回复WordPress常用插件下载博客插件模块
- Img to rss最好的wordpress常用插件下载博客插件模块
- WPMozo为Elementor最好的WordPress常用插件下载博客插件模块添加精简版