[英]Launching intent from a class outside an activity
我有兩個活動,其中一個叫做MyActivity
。 我希望他們倆能夠使用位於我們可能稱之為MyClass
的類中的函數。 在MyClass
,我嘗試使用intent來啟動活動AnotherActivity
。 由於構造函數將上下文作為參數,我只是嘗試在構造函數中存儲活動的上下文,然后在嘗試創建我的intent時使用它。
class MyClass {
private Context cxt;
MyClass(Context cxt) {
this.cxt = cxt;
}
startIntent() {
Intent intent = new Intent(cxt, AnotherActivity.class);
startActivity(intent); // this line throws a NullPointerException
}
}
MyActivity
中使用該類的代碼如下所示:
myClassObject = new MyClass(MyActivity.this);
myClassObject.startIntent();
但是,即使沒有任何參數為null(使用簡單的if語句檢查), intent
似乎為null並拋出NullPointerException
。 為什么它不起作用,我該怎么做才能解決問題? 我是Android和Java開發的新手,所以請盡可能地解釋它。
cxt.startActivity(new Intent(cxt, AnotherActivity.class));
並且為了確保它的意圖是NULL,而不是startActivity方法中的內部,你可以添加一些檢查,即
Intent intent = new Intent(cxt, AnotherActivity.class);
Log.d(toString(), "intent = " + intent.toString());
cxt.startActivity(intent);
我在我的應用程序中使用了幾乎完全相同的代碼並且工作正常。
我懷疑在你沒有向我們展示的代碼中還有其他的東西; 我懷疑有一些剪切和粘貼問題 - 例如你在MyClass中調用startActivity()是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.