[英]Android Intent Activity Callback
我正在開發一個基本上包含自定義View的Android模塊,第三方可以直接參與其任何活動。 該模塊包括配置活動(基於PreferenceActivity)。
鑒於您無法從View啟動活動,模塊將在顯示的活動上調用“ openConfig(Intent intent)”。此活動充當模塊的委托。
到目前為止,它仍然可以正常工作(盡管我真的很希望模塊可以內部處理所有事情,不需要委托方法,但我認為這是不可能的)。 但是,我需要從首選項活動到模塊的某種回調,以便在更改設置后通知模塊。
我當時只是想將模塊的主類添加為首選項活動的委托。
ConfigActivity a = new ConfigActivity();
a.testVar = "testtest";
Intent intent = new Intent(getContext(), a.getClass());
delegate.handleConfigAction(intent); //
但是,僅使用一個簡單的String(而不是接口)進行的測試顯示,活動開始后不會設置String。
第二個想法是在意圖上使用'putExtra()',但這並不完全適合用例,因為我想放置的委托實際上是一個View而不是一個可序列化的數據對象。
我有什么辦法可以在內部進行處理嗎? 我知道'onActivityResult()'函數( http://developer.android.com/training/basics/intents/result.html ),但這意味着使用我的模塊的第三方開發人員需要處理此問題,出於明顯的原因需要避免的事情。
任何幫助將不勝感激!
編輯:最終解決方案最后,我將模塊從“視圖”更改為“片段”,現在該模塊在處理“子”活動等方面效果更好。 從片段開始活動時,“ onActivityResult”功能可以很好地完成手頭的任務。
您可以使用其Context
從View
啟動Activity
,如下所示:
@Override
public void onClick() {
Intent intent = new Intent(getContext(), ConfigActivity.class);
intent.putExtra("testVar", "testtest");
getContext().startActivity(intent);
}
您可以使用onWindowVisibilityChanged()
方法讀取將在ConfigActivity
設置的配置,以使View
更改其行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.