Intent 是同一个或不同的应用中的组件之间的消息传递的媒介,是一个将要执行动作的抽象描述,一般来说是作为参数来使用。 本课时主要介绍Intent的使用方法。
先介绍下如何使用Intetn打开Activity的方法:
第一种:
<span style="font-size:14px;">Intent intent = new Intent(MainActivity.this,Acty1.class);
startActivity(intent);</span>
第二种:
<span style="font-size:14px;">Intent intent = new Intent();
intent.setComponent(
//第一个参数:该Activity所在的包里,第二个参数:该Activity的具体路径名
new ComponentName("com.example.intentdemo", "com.example.intentdemo.Acty1"));
</span><pre name="code" class="html"><span style="font-size:14px;">startActivity(intent);</span>
第三种:
要跳转到那个Activity,在配置文件中配置该Activity的action.
<span style="font-size:14px;"> <activity android:name="Acty1">
<intent-filter >
//命名是有规范的:包名+intent.Activity名
<action android:name="com.example.intentdemo.intent.action.Acty1"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity></span>
配置文件设定好之后,直接在代码就可以实现跳转了
<span style="font-size:14px;">Intent intent = new Intent("com.example.intentdemo.intent.action.Acty1");
</span><pre name="code" class="html"><span style="font-size:14px;"></span><pre name="code" class="html"><span style="font-size:14px;">startActivity(intent);</span>
使用Intent打开手机里指定文件夹的指定图片
先定义一个按钮,点击按钮时显示指定图片,默认使用Intent自带的预览窗口。
btnOpenImage = (Button) findViewById(R.id.btn2);
btnOpenImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//从手机中指定的文件夹打开指定的一张图片
File f = new File("/data/data/com.example.intentdemo/iamge_07.jpg");
Intent intent = new Intent(Intent.ACTION_VIEW);//使用Intent自带的预览窗口
intent.setDataAndType(Uri.fromFile(f), "image/*");//(指定路径,打开类型)
startActivity(intent);
}
});
这样就可以打开指定的图片显示在Intent的预览窗口上。也可以显示在自定义窗口上:
首先,先自定义一个Activity,让图片显示在指定Activity中ImageView上。
public class ImageViewer extends Activity {
private ImageView iv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
iv = new ImageView(this);
setContentView(iv);
<span style="white-space:pre"> </span>//ImageView通过Intent获取图片信息。
iv.setImageURI(getIntent().getData());
}
}
自定义好Activity之后,还需要配置下Activity的属性。
<activity android:name="ImageViewer">
<intent-filter >
<action android:name="android.intent.action.VIEW"/>//Intent<span style="font-family: Arial, Helvetica, sans-serif;">默认预览窗口</span>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="image/*" android:scheme="file"/>//设置为image所有类型,获取本地信息
</intent-filter>
</activity>
这样自定义的Activity就好了,当你点击的时候,弹出 默认预览窗口和自定义的窗口供您选择图片要放到那个窗口上。
接上来我们来做个更有趣的,点击按钮,会弹出拨打电话的界面,并把指定的号码显示出来,直接按拨号键就可以。
btn10086 = (Button) findViewById(R.id.btn3);
btn10086.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("tel:10086"));
startActivity(intent);
}
});
只需要设置Intent.setData();属性就可以了。
同样的道理,我们在来做一个,点击按钮,直接弹出浏览器打开指定的网页地址。
btnBaidu = (Button) findViewById(R.id.btn4);
btnBaidu.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.baidu.com"));
startActivity(intent);
}
});
谢谢大家的阅读,有问题欢迎留言,大家一起来学习。