关于Intent用法的几点学习笔记

1.在java中写跳转到网页(并不需要多建一个页面)

Intent intent = newIntent(Intent.ACTION_VIEW);

intent.setData(Uri.parse("http://www.baidu.com"));

startActivity(intent);

2. 在java 中写跳转到拨号键盘:

Intent intent = newIntent(Intent.ACTION_DIAL);

intent.setData(Uri.parse("tel:10086"));

startActivity(intent);

其中,第2句如果有,则拨号键盘已输入好10086,如果没有则只是跳转到拨号键盘。

3. 选出所有涉及到协议的应用:

在manifest中,button所跳转到的页面的activity中写:

<activity

           android:name=".ThirdActivity"

           android:label="@string/title_activity_third" >

           <intent-filter>

                <actionandroid:name="android.intent.action.VIEW"/>

                <categoryandroid:name="android.intent.category.DEFAULT"/>

                <dataandroid:scheme="http"/>

           </intent-filter>

       </activity>

其中,java中的Intent.ACTION_VIEW对应值android.intent.action.VIEW,这样将两个activity连接起来,data的意思是将所有涉及到协议http的应用都选出来,之后在里面选择一个应用。

4.返回数据给上一个活动:startActivityForResult,setResult,onActivityResult三者的合作

(1) 在MainActivity中:

                                     Intentintent = new Intent(MainActivity.this,ThirdActivity.class);

                                     startActivityForResult(intent,1);

这里,1用于确定是从哪个活动传过去的,唯一标识。

(2) 在ThirdActivity中设定要返回的数据:

                                     Intentintent = new Intent();

                                     intent.putExtra("data_return","Hello MainActivity!");

                                     setResult(RESULT_OK,intent);

                                     finish();

这里,setResult()是专门用于向上一个活动返回数据的,第一个参数用于向上一个活动返回处理结果,一般只是用RESULT_OK和RESULT_CANCELED两个值,第二个蚕食是把带有数据的intent传递回去。然后用finish()来销毁当前活动。

(3) 在ThirdActivity被销毁后,会毁掉上个活动的onActivityResult(),因此需要重写此方法来得到返回的数据:

         @Override

         protectedvoid onActivityResult(int requestCode,int resultCode,Intent data){

                   switch(requestCode){

                   case1:

                            if(resultCode== RESULT_OK){

                                     Stringreturndata = data.getStringExtra("data_return");

                                     Log.i("MainActivity",returndata);

                                     Toast.makeText(MainActivity.this,returndata, Toast.LENGTH_LONG).show();

                            }

                            break;

                   default:

                            break;               

                   }

         }

         onActivityResult()的三个参数,requestCode是在启动活动时传入的请求码,resultCode是在返回数据是传入的处理结果,data是携带着返回数据的Intent。我们首先通过检查requestCode的值来判断数据来源,确定数据是从ThirdActivity返回的之后,再通过resultCode的值来判断处理结果是否成功,最后从data中取值并打印。

(4) 如果是用back键进行返回上一级的,就重写ThirdActivity的onBackPressed()方法,写法与(2)相同。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值