簡體   English   中英

從活動之外的課程中啟動意圖

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM