tags: APP
Android
Common 先修知識
連結:【APP/Android】如何使用Intent, Bundle:在兩個Activity之間傳遞資料
方式1:“一般常用” setClass(packageContext, cls)
- 參數
- Context packageContext
- Class<?> cls
- Example 範例
Intent intent = new Intent().setClass(A.this, B.class);
startActivity(intent);
相似作法:Intent 建構子
- Intent(Context packageContext, Class<?> cls)
- Example 範例
startActivity(new Intent(A.this, B.class));
方式2:setClassName(packageContext, className)
- 參數
- Context packageContext
- String className:完整檔名(包含所有package),例如:
com.example.Main2Activity
- Example 範例
Intent intent = new Intent().setClassName(A.this, "com.example.Main2Activity");
startActivity(intent);
相關問題
方式3:setClassName(packageName, className)
- 參數
- String packageName:完整的package名稱,例如:
com.example
- String className:完整檔名(包含所有package),例如:
com.example.Main2Activity
- String packageName:完整的package名稱,例如:
Intent intent = new Intent().setClassName("com.example", "com.example.Main2Activity");
startActivity(intent);
相關問題
連結:Cannot start new Intent by setClassName with different package in Android
方式4:“少用” setComponent(component)
-
少用:因為 方式1~方式3 是從 setComponent(component 而來
- 官方文件說明:Convenience for calling setComponent(ComponentName)
-
參數
- ComponentName component
-
ComponentName 的建構子
方式 對應的建構子 方式1 ComponentName(Context pkg, Class<?> cls) 方式2 ComponentName(Context pkg, String cls) 方式3 ComponentName(String pkg, String cls)
Reference 參考資料
- Intent 圖片:https://javapapers.com/android/android-intent/
- Android學習之路之 顯式Intent對於Activity之間的多種跳轉方式:https://read01.com/ge0y5.html
- Intent 官方文件:https://developer.android.com/reference/android/content/Intent.html
- ComponentName 官方文件:https://developer.android.com/reference/android/content/ComponentName.html
- android.content.ActivityNotFoundException: Unable to find explicit activity class, have you declared this activity in your AndroidManifest.xml?https://stackoverflow.com/questions/49724946/android-content-activitynotfoundexception-unable-to-find-explicit-activity-clas
- Cannot start new Intent by setClassName with different package in Android
https://stackoverflow.com/questions/9923602/cannot-start-new-intent-by-setclassname-with-different-package-in-android
沒有留言:
張貼留言