2013-01-17 102 views
2

我正在使用一些各種廣告網絡,它們都需要將自己的活動名稱添加到清單中。獲取Intent內的活動名稱

我想知道用戶何時點擊它們,所以我放入了替代startActivity(Intent intent),但我需要檢查意圖對象以有條件地設置一些值。

例如,點擊tap的網絡,它將啓動類com.ads.TapForTap的活動。點擊此按鈕後,將調用startActivity(Intent intent)如何從意圖獲取類的名稱?

感謝

回答

8

試試下面一行的獲得當前活動名稱,

this.getClass().getSimpleName() 
+1

我需要從一個intent對象中獲取它。不是來自當前班級。這可能工作,雖然 – CQM

+0

這沒有得到活動的名稱,由其名稱,但不是包名稱。這很好,我可以使用 – CQM

4

,如果你有下面這行應該返回要啓動活動的全名:

  • 開始活動的意圖
  • 上下文實例(因此您可以撥打getPackageManager())。

String className = myIntent.resolveActivity (myContext.getPackageManager()).getClassName(); 

欲瞭解更多信息,請參閱Intent文檔resolveActivity()

+1

我會稍後測試這個 – CQM

+0

@CQM你試過嗎?根據我的測試,它會給你全名(com.package.ActivityName),但也許我誤解了你想要的。 –

+0

當時我真的需要任何方式來區分包,解決我的底層問題,我做了'if(!context.getClass()。getSimpleName()。contentEquals(「」))',因爲這個條件只會得到當點擊其中一個廣告網絡時觸發,因爲我可能會添加更多我不需要更多細節 – CQM

15

您可以使用給定的意圖參數的組件類名稱。記住班級名稱可能是空的!

intent.getComponent().getClassName()

+3

請註釋您的答案,使其有用。我們不需要複製/粘貼解決方案。我們需要幫助提問者和讀者理解解決方案。 –

相關問題