intent跳转
最基础:
Intent intent = new Intent();
intent.setClass(MainActivity.this,TwoActivity.class);
startActivity(intent);
隐式跳转:
打开main文件夹下的AndroidManifest.xml文件
新建
在里面新建
再新建一个 *action必须创建
新建一个 *如果需要隐式跳转必须建立
Action:
ACTION_CALL activity 启动一个电话.
ACTION_EDIT activity 显示用户编辑的数据.
ACTION_MAIN activity 作为Task中第一个Activity启动
ACTION_SYNC activity 同步手机与数据服务器上的数据.
ACTION_BATTERY_LOW broadcast receiver 电池电量过低警告.
ACTION_HEADSET_PLUG broadcast receiver 插拔耳机警告
ACTION_SCREEN_ON broadcast receiver 屏幕变亮警告.
ACTION_TIMEZONE_CHANGED broadcast receiver 改变时区警告.
Category:
CATEGORY_DEFAULT:Android系统中默认的执行方式,按照普通Activity的执行方式执行。表示所有intent都可以激活它
CATEGORY_HOME:设置该组件为Home Activity。
CATEGORY_PREFERENCE:设置该组件为Preference。
CATEGORY_LAUNCHER:设置该组件为在当前应用程序启动器中优先级最高的Activity,通常为入口ACTION_MAIN配合使用。
CATEGORY_BROWSABLE:设置该组件可以使用浏览器启动。表示该activity只能用来浏览网页。
CATEGORY_GADGET:设置该组件可以内嵌到另外的Activity中。
示例一:
打电话
Intent intent = new Intent(“android.intent.action.CALL”);
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse(“tel:133333333”));
startActivity(intent);
示例二:
跳转界面
Intent intent = new Intent();
intent.setAction(“com.example.intentchange.TwoActivity”);
储存数据跳转
MainActivity
创建
Intent intent = new Intent();
Bundle bundle = new Bundle();
存放字符串 键值对存放 key->value
bundle.putString(“users”,“xd”);
存放界面中的值
bundle.putString(“id”,id.getText().toString()); 获取文本 转为字符串
将bundle中的数据转到intent中
intent.getExtras(bundle);
获取跳转
1、显式
intent.setClass(MainActivity.this,TwoActivity.class);
startActivity(intent);
2、隐式
intnet.setAction(“com.example.intent.MainActivity”);
startActivity(intent);
TwoActivity
创建bundle接收数据
Bundle bundle = getIntent().getExtras();
String users = bundle.getString(“users”); 获取传递的字符串
Staring text1 = bundle.getString(“id”); 获取传过来的文本
text_put.setText(“users:”+users+“id”+text1); 输出获取的文本
获取后返回内容
MainActivity
启动时 将startActivity(intent)换成 startActivityForResult(intent,1); 1为返回值
创建一个 新的方法 onActivityResult 用来获取返回内容
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode){ 获取返回值进行判断
case 1:
if(resultCode == RESULT_OK){ 结果值为RESULT_OK进行以下步骤
//取数据
String res = data.getStringExtra("result"); 获取返回的内容
Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show(); 通过弹出的方式显示出来
}
break;
default:
break;
}
TwoActivity
创建跳转
Intent intent = new Intent();
获取要返回的内容
intent.putExtra(“result”,“接收成功”);
隐式跳转回主界面
intent.setAction(“android.intent.action.MAIN”);
setResult(RESULT_OK,intent); RESULT_OK系统自带结果值 创建的跳转
finish(); 然后系统知道完成