在使用Android的应用的时候,我们时常会见到一个页面到一个页面的切换,这一节我们就将介绍Android开发中的活动切换——Intent
Intent共有两种 显式Intent与隐式Intent
显式intent
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "you will go to SecondActivity", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
}
顾名思义,显式Intent就是通过显式的方式调用 Intent,在上面的代码中我们使用了Intent的含参的构造函数,第一个参数是调用活动的当前类,第二个参数是目标类,这里很明确的指出目标类是SecondActivity,所以我们把这样的Intent叫做显式Intent.
隐式Intent
隐式intent是不指定我们打开某一个具体的活动,而是根据当前intent让系统自己去判断我们要打开的活动
首先我们进入到AndroidMainifest.xml中进行一些活动的标识
<activity android:name=".SecondActivity">
<intent-filter>
<action android:name="android.intent.action.ACTION_START"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="com.example.yaomenglong.testproject.MY_CATEGORY"/>
</intent-filter>
</activity>
我们使用intent-filter对SecondActivity进行标识,我们自定义他的category为com.examples.yaomenglong.testproject.MY_CATEGORY
然后回到FirstActivity中进行隐式Intent创建
public void onClick(View v) {
Toast.makeText(FirstActivity.this, "you will go to SecondActivity", Toast.LENGTH_SHORT).show();
Intent intent = new Intent("android.intent.action.ACTION_START");
intent.addCategory("con.example.yaomenglong.testproject.MY_CATEGORY");
startActivity(intent);
}
当我们点击Button时将会从FirstActivity转到SecondActivity FirstActivity SecondActivity使用android.intent.action.ACTION_START创建intent
使用addCategory添加我们自定义的com.example.yaomenglong.testproject.MY_CATEGORY
最后startActivity打开secondActivity
附:
使用内置intent可以打开其他应用,下面介绍使用intent打开百度与拨打电话
1.打开百度
button2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});
百度使用内置的Intent.ACTION_VIEW
利用setData打开Uri.parse解析过的字符串
点击按钮即可打开百度网页
2.拨打电话
button3.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
}
});
拨号使用内置的Intent.Action_DIAL
使用setData打开解析后的字符串
开启一个新的活动
点击按钮即可打开拨号页面,此时已经输入好了号码
网友评论