首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > 移动开发 >

Intent的起动

2013-11-15 
Intent的启动div stylefont-size: 14px/div显示意图启动public void explicit(View view){//1).先

Intent的启动
<div style="font-size: 14px"></div>
显示意图启动

public void explicit(View view){//1).先创建意图对象然后制定开启的activityIntent intent = new Intent();//1.使用当前环境intent.setClass(this, otherActivity.class);//2.指定包名和类名intent.setClassName("com.zls.intentabout", "com.zls.intentabout.otherActivity");//3.包名用this代替intent.setClassName(this, "com.zls.intentabout.otherActivity");//2)创建意图的时候直接指定Intent intent = new Intent(this, otherActivity.class);startActivity(intent);}



隐式意图, 通过动作, 数据等设置打开Activity, 程序中并不指定一个类
public void implicit(View view){/*  打电话Intent intent = new Intent();intent.setAction(Intent.ACTION_CALL);intent.setData(Uri.parse("tel:18600012345"));startActivity(intent); *//*  打开网页Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setData(Uri.parse("http://www.baidu.com"));startActivity(intent); *//*打开图片Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setDataAndType(Uri.parse("file://mnt/sdcard/img.jpg"), "image/*");startActivity(intent);*//*打开音乐Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setDataAndType(Uri.parse("file://mnt/sdcard/mu.mp3"), "audio/*");startActivity(intent);*//*打开视频Intent intent = new Intent();intent.setAction(Intent.ACTION_VIEW);intent.setDataAndType(Uri.parse("file://mnt/sdcard/di.mp4"), "video/*");startActivity(intent); */}


在开启一个新的activity的时候,我们可以往里面传数据
public void sendData(View view){Intent intent = new Intent(this,otherActivity.class);//1.形式一intent.putExtra("name", "张三");intent.putExtra("age", 20);//2.形式二Bundle b1 = new Bundle();b1.putInt("age", 20);b1.putString("name", "张三");intent.putExtra("b1", b1);startActivity(intent);// 开启Activity,不接受返回的数据//startActivityForResult(intent, 100);// 开启Activity, 并接收返回的数据(在新Activity关闭的时候执行onActivityResult方法)100是请求码}



/**
* @param requestCode startActivityForResult方法中传入的int值, 用来区别哪里开启的
* @param resultCode setResult方法中传入的int值, 用来区别哪里返回的
* @param data setResult方法中返回的Intent对象
*/

@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {String name = data.getStringExtra("name");int age = data.getIntExtra("age", -1);super.onActivityResult(requestCode, resultCode, data);}


otherActivity中代码
public class otherActivity extends Activity {//第一种Intent intent = getIntent();//String name = intent.getStringExtra("name");//Integer age = intent.getIntExtra("age", -1);//第二种Bundle b1 = intent.getBundleExtra("b1");String name = b1.getString("name");Integer age = b1.getInt("age");}


最后记得在配置清单中加入activity
<activity android:name=".otherActivity" android:label="新的Activity" >        <intent-filter >                                          <action android:name="android.intent.action.CALL" />           <action android:name="android.intent.action.VIEW" />           <data android:scheme="tel" /><data android:scheme="http" /><data android:scheme="file" android:mimeType="image/*" /><data android:scheme="file" android:mimeType="audio/*" /><data android:scheme="file" android:mimeType="video/*" /><category android:name="android.intent.category.DEFAULT" />         </intent-filter>            </activity>

热点排行