9 打开浏览器 显式隐式意图

--------------------main.xml----------------------


package com.example.gr;


import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;


public class MainActivity extends ActionBarActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}


public void click(View view){
//      <action android:name="android.intent.action.VIEW" />
//      <category android:name="android.intent.category.DEFAULT" />
//      <category android:name="android.intent.category.BROWSABLE" />
//      <data android:scheme="http" />
//      <data android:scheme="https" />
//      <data android:scheme="about" />
//      <data android:scheme="javascript" />
Intent intent = new Intent();
intent.setAction("android.intent.action.VIEW");
intent.addCategory("android.intent.category.DEFAULT");
intent.addCategory("android.intent.category.BROWSABLE");
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
}


、、、、、、、、、、、、参考、、、、、、、、、、

//显式意图  :必须指定要激活的组件的完整包名和类名 (应用程序之间耦合在一起)
// 一般激活自己应用的组件的时候 采用显示意图

//隐式意图: 只需要指定要动作和数据就可以 ( 好处应用程序之间没有耦合)
//激活别人写的应用  隐式意图, 不需要关心对方的包名和类名

Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者,这种方式与普通的函数调用类似;另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,这种方式与函数调用差别比较大,有利于降低发送者和接收者之间的耦合。另外Intent除了发送外,还可用于广播.

显示调用 1.Intent intent = new Intent(); intent.setClass(A.this,B.class); //intent.setClassName("com.view","com.view.B");前者是A的包名,后者是B的代包类名

startActivity(Intent);

隐式调用:private static String MY_ACTION = "com.view.my_action";

              Intent intent = new Intent();  intent.setAction(MY_ACTION);

               或者// Intent intent = new Intent(MY_ACTION);

                startActivity(Intent);

隐式调用注意不只是在AndroidManifest.xml文件中声明,还要加上intent-filter

在B类的activity中加上:

<intent-filter>

    <action android:name="com.view.my_action"/>  <!-- 自定义 -->

</intent-filter>

加上这句话就可以跳转到B类了



public void enter(View view){
String name = et_name.getText().toString().trim();
if(TextUtils.isEmpty(name)){
Toast.makeText(this, "请输入姓名", 0).show();
return;
}
//意图     开电视  打人  打酱油
Intent intent = new Intent(this, CalcActivity.class);
intent.putExtra("name", name);
//显式意图
//intent.setClassName(getPackageName(), "com.itheima.rpcalc.CalcActivity");//不指定动作,也不指定数据 直接指定要激活的组件
startActivity(intent);
//隐式意图
//intent.setAction(action);
//intent.setData(data);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值