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(); 然後系統知道完成