您的位置:首页 > 移动开发 > Android开发

Android第一行代码 第二章 Activity相互跳转与Intent

2018-01-05 10:52 393 查看
1. 显示Intent

2. 隐式Intent

3. 无数据传递的Activity跳转

4. 携带数据的Activity跳转

5. 需要返回数据的Activity跳转

一  显示Intent跳转 ( 参数为Class )

     参数1:  context   参数2: 要跳转的Activity的Class      Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
startActivity(intent);

二 隐式Intent跳转 ( 参数为Manifest.xml中配置的Intent-filter中的action,category,data )

参数1:action   Activity在Manifest.xml中配置的action. <action>表明当前活动可以响应action中声明的值.

其他参数; <category>表示附加信息。默认为DEFAULT。 一定要action,category都匹配才响应intentIntent intent = new Intent("com.example.activity.ACTION_START");
startActivity(intent)     2.2 隐式Intent  跳转浏览器
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData( Uri.parse(“http://www.baidu.com”));
startActivity(intent);     2.3 隐式Intent 拨打电话
Intent intent = new Intent( Intent.ACTION_DIAL );
intent.setData( Uri.parse(“tel:10086”) );
startActivity(intent);


无数据传递的Activity跳转

FirstActivity中:
Intent intent = new Intent( FirstActivity.this, SecondActivity.class );
startActivity(intent);


四 携带数据的Activity跳转

FirstActivity中:
String data = “hello SecondActivity”;
Intent intent = new Intent( FirstActivity.this, SecondActivity.class );
intent.putExtra(“data”, data);
startActivity(intent);

SecondActivty中:
Intent intent = getIntent();  //获取启动secondActivity的intent
String data   = intent.getStringExtra(“data”); //获取intent承载的数据


五 需要返回数据的Activity跳转      

startActivityForResult() 这个方法期望在活动销毁的时候能够返回一个结果给上一个活动。
参数1: intent;
参数2: 请求码,用于在之后的回调中判断数据的来源;

代码:
FirsetActivity中:
(1) Intent跳转:
Intent intent = new Intent( FirstActivity.this, Seco
4000
ndActivity.class );
intent.startActivityForResult( intent, 1 /* resultCode */ );

(2) 获取返回值 :
/*
onActivityResult:
参数1: 表示返回数据是否有效;
参数2: 表示是哪个Activity返回,由startActivityForResult传入;
参数3: Intent 即返回时携带数据的Intent;
*/
protected void onActivityResult( int requestCode, int resultCode,Intent data ){
super.onActivityResult( requestCode,resultCode,data );
if( resultCode ==RESULT_OK && requestCode==1 ){

String return_data = data.getStringExtra(“data_return”);
Toast.makeText(MainActivity.this, return_data, Toast.LENGTH_SHORT).show();
}
}

SecondActivity中
Intent intent = new Intent();
intent.putExtra(“data_return”, “hello FirstActivity”);
setResult(.RESULT_OK, intent );
finish();

注意: 构建的Intent,仅仅用于传递属于而已,它没有指向任何意图。 将要传递的数据存放在Intent中,然后调用setResult()方法。这个方法很重要,是专门用于向上一个活动返回数据的。参数1:用于向上一个Activity返回处理结果,一般只是用RESULT_OK,RESULT_CANCELED这两个值。参数2:携带数据的Intent。 最后调用finish()方法来销毁当前活动。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: