一、Activity之間相互跳轉:
Intent intent=new Intent(MainActivity.this, InfoActivity.class); startActivity(intent);
這種是常規操作,無需多做解釋。
使用 Activity的startActivity方法,不會有任何限制,因為Activity繼承自Context,重載了startActivity方法。
二、非Activity跳轉到Activity中:
這種跳轉則需要注意,比如在recyclerview控件的每個view的點擊事件中,因為是自定義的Adapter,則需要定義一個運行上下文來啟動頁面跳轉:
1、定義全局變量
private Context mContext;
2、使用該全局變量進行頁面跳轉
Intent intent= new Intent(); intent.setClass(mContext, InfoActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); mContext.startActivity(intent);
因為context的startActivity方法,需要開啟一個新的task,所以要給intent添加flag,值為Intent.FLAG_ACTIVITY_NEW_TASK。
注:在使用全局變量context時,要在構造函數里進行初始化,否則會報錯。
在Activity中將MainActivity.this作為參數傳入,在Adapter中以Activity類型接受該參數並賦值給context,完成該全局變量的初始化。
