day01 Intent的使用

本文详细介绍了Android中Intent的两种类型:显式Intent和隐式Intent,并提供了具体的代码示例。此外,还介绍了如何使用Intent在不同Activity间传递数据,以及如何通过startActivityForResult启动活动并返回数据。

1.显示的Intent

1.1 Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
在使用显示的intent的时候,出啊如FirstActivity.this作为上下文,传入SecondActivity.class作为目标活动.
这样的话我们的意图就非常的明显了.使用这种方式的Intent意图非常的明显,我们称之为显示的Intent.

2.隐式的Intent

2.1 隐式的Intent并不明确指出我们要启动哪一个活动,而是指出一系列更为抽象的action和category等信息.
然后交由系统去分析这个Intent,找到合适的活动去启动.

2.2 通过在Androidmanifest.xml项目清单配置文件中,为一个activity配置内容.可以指定当前的activity
能够响应的action和category.
标签中指明了当前活动可以响应某个action,而标签包含了一些附加的信息,更精确的指明了当前活动
能够响应的Intent的还可能带有的category.只有和中的内容能够匹配上intent中指定的action和category时,这个活动才能够响应该intent.

例如下面代码,就是在FirstActivity中通过按钮点击事件启动另外一个Activity的例子:
btn.setOnClickListener(new onClicikListener()
public void onClick(View v)
{
case R.id.btn_start:
Intent intent = new Intent(“ACTION_START_SECONDACTIVITY”);
intent.addCategory(“com.example.MY_CATEGORY”);
startActivity(intent);
}
);

然后在配置清单文件中为activity配置intent-filter,表示当前activity可以响应怎么样的
intent.主要是要响应的intent中包含的action和category.




2.3 更多的隐式Intent
1> 拨打电话功能实现:
构建Intent
Intent intent = new Intent(“Intent.ACTION_DIAL”);
intent.setData(Uri.parse(“tel:10086”));
startActivity(intent);
首先指定了Intent的action为Intent.ACTION_DIAL,这是一个Android系统的内置动作.
然后在data部分指定了协议是tel,号码是10086.
解读上面的程序
Uri.parse()方法-> 将一个网址字符串解析成为一个Uri对象,再调用setData(Uri),将一个网址字符串解析成一个Uri对象.
什么是Uri-> 通用资源标识符(Universal Resource Identifier,简称 Uri).Uri代表要操作的数据,Android中
可用的每种资源-图像,视频片段都可以使用Uri表示.

2>使用Intent打开一个网页:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(“http://ww.baidu.com“));
startAcitivty(intent);

3.使用Intent向下一个活动传递数据

3.1 向下一个活动传递一个字符串,可以这么写:
String data = “Hello SecondActivity!”;
Intent intent = new Intent(FirstAcitvity.this,SecondActivity.class);
intent.putExtra(“extra_data”,data);
startActivity(intent);

然后在SecondActivity中将传递的数据取出,并打印出来.如下代码所示:
Intent intent = getIntent();
String data = intent.getStringExtra(“extra_data”);
Log.d(“toLook”,data);

首先是通过getIntent()方法可以获取用于启动SecondActivity的Intent,然后调用getStringExtra()方法
传入相应的键值,就可以得到相应的数据了.

4.返回数据给上一个活动

4.1 返回上一个活动,一般我们按back键就可以了,如果想要返回数据给上一个活动,就不能用startActivity(intent)的方式启动,
而应该使用startActivityForResult()方法来启动.这个方法期望活动在销毁的时候能够返回一个结果给上一个启动它的Activity.
startActivityForResult(Intent intent, Int requestCode);
第一个参数是Intent,第二个参数是requestcode,是请求码,用于在之后的回调中判断数据的来源.
启动示例:
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivityForResult(intent,1);

然后在SecondActivity当中,添加返回数据的逻辑.
Intent intent = new Intent();
intent.putExtra(“data_return”,”HelloFirstActivity”);
setResult(RESULT_OK,intent);
finish();

setResut(int resultCode, Intent intent);这个方法是专门用于向上一个活动返回数据的.setResult()方法接收两个参数
第一个参数用于向上一个活动返回处理的结果,一般只使用RESULT_OK或RESULT_CANCELED这两个值,第二个参数则是把带
有数据的Intent传递过去,然后调用finish()方法来销毁当前的活动.

由于我们是使用startActivityForResult()方法启动的SecondActivity的,所以在SecondActivity被销毁之后会回调上一个活动
的onActivityResult()方法,因此我们需要在FirstActivity中重写这个方法来得到返回的数据,如下所示:
protected void onActivityResult(int requestCode,int resultCode,Intent data)
{
String returnedData = data.getStringExtra(“data_return”);
Log.i(“FirstActivity”,returnedData);
}
onActivityResult()方法有三个参数,第一个参数resultCode,即我们在启动活动时候的传入的请求码.第二个参数resultCode,即
我们在返回数据时传入的处理结果.第三个参数data,即携带着返回数据的intent.由于在一个活动中可能会调用startActivityForResult()方法启动很多不同的活动,每一个活动的返回数据都会回调到onActivityResult()这个方法中,因此我们
首先要做的就是通过requestCode的值来判断数据的来源.再通过resultCode的值来判断处理结果是否成功.最后从data中取值
并打印出来,这样就完成了向上一个活动返回数据的工作.

基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值