Android開發:在非Activity類中,如何實現跳轉到另一個Activity


一、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,完成該全局變量的初始化

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM