從Activity上下文外部調用startActivity()

我已經在個人Android應用程序中實現了ListView 。 我使用ArrayAdapter類的自定義子類綁定到此ListView 。 在重寫的ArrayAdapter.getView(...)方法內部,我分配了一個OnClickListener 。 我想在OnClickListeneronClick方法中啓動一個新活動。 我獲得例外: ide

Calling startActivity() from outside of an Activity  context requires the  
FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?

如何獲取ListView (當前Activity )在其下工做的Contextui


#1樓

您能夠使用addFlags代替setFlags來實現 this

myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

根據文檔,它能夠: url

向意圖添加其餘標誌(或使用現有標誌值)。 spa


編輯 code

請注意,若是您使用的標誌會更改歷史記錄堆棧,如Alex Volovoy的回答所述事件

...避免設置標誌,由於它會干擾事件和歷史記錄堆棧的正常流程。 文檔


#2樓

對於即便在活動中調用StartActivity的狀況下,也能夠在Xamarin.Android(MonoDroid)上得到此權限的人-這其實是具備新ART運行時的Xamarin錯誤,請參閱https://bugzilla.xamarin.com/show_bug.cgi?id=17630 get


#3樓

CustomAdapter mAdapter = new CustomAdapter( getApplicationContext(), yourlist);

要麼 it

Context mContext = getAppliactionContext();
CustomAdapter mAdapter = new CustomAdapter( mContext, yourlist);

轉到下面

CustomAdapter mAdapter = new CustomAdapter( this, yourlist);

#4樓

我認爲,最好在Activity.class的代碼中使用startActivity()方法。 若是在Adapter或其餘類中使用它,則會致使這種狀況。


#5樓

另外:若是您在片斷視圖的列表視圖中顯示連接,請不要這樣建立連接

adapter = new ListAdapter(getActivity().getApplicationContext(),mStrings);

代替打電話

adapter = new ListAdapter(getActivity(),mStrings);

適配器在兩種狀況下均能正常工做,但連接僅在最後一種狀況下有效。

相關文章
相關標籤/搜索