[英]Starting new Activity not from the MainActivity file
我需要打開新的活動(如果重要的話,請使用片段),並且我在與主要活動不同的文件中,因此代碼如下:
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
CurrentActivity.this.startActivity(myIntent);
對我來說還不夠好,因為我得到了:
...不是封閉類ERROR:CurrentActivity.this
有人知道如何解決嗎?
謝謝...
您需要將Context
類的實例傳遞給Intent
構造函數。 因此,如果需要從Fragment
開始新活動,則應編寫new Intent(getActivity(), NextActivity.class);
並像getActivity().startActivity(myIntent);
一樣啟動它
如果您在班級中,請使用以下代碼:
public class AnyClassName{
Context context;
public AnyClassName(Context context){
this.context = context;
}
public void AnyMethod(){
Intent myIntent = new Intent(context, NextActivity.class);
context.startActivity(myIntent);
}
}
如果您在Fragment中,請使用以下命令:
public Class AnyFragmnet extends Fragment{
//all default methods which i am not declaring
public void AnyMethodName(){
Intent myIntent = new Intent(getActivity(), NextActivity.class);
getActivity().startActivity(myIntent);
}
}
據我所知,有一些方法可以解決此問題。 最主要的是您必須獲取一個context
對象才能啟動另一個活動。 讓我們嘗試以下方法之一:
如果您使用的是fragment
,則在從fragment開始活動時,嘗試調用getActivity()
,如下所示:
Intent i = new Intent(getActivity(), NextActivity.class); getActivity.startActivity(i);
創建一個Application class extends Application
為您的項目Application class extends Application
,然后調用getApplicationContext()
而不是調用getActivity();
將Context
對象傳遞給您的fragment
,然后使用它代替getActivity()
或getApplicationContext()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.