我應該調用什麼方法來知道Activity是否有其contentView(一旦調用了方法setContentView())?如何獲取Activity的內容視圖?
回答
this.getWindow().getDecorView().findViewById(android.R.id.content)
或
this.findViewById(android.R.id.content)
或
this.findViewById(android.R.id.content).getRootView()
您可能想試試View.getRootView()
。
如果您將ID添加到您的佈局中,您可以獲取視圖。
<RelativeLayout
android:id="@+id/my_relative_layout_id"
而且從findViewById叫它...
這是獲取已安裝佈局的根的最穩健的方式。 – 2013-08-26 23:47:23
你將什麼傳遞給'findViewById'? – trans 2016-06-16 15:12:57
@trans查看contentView = findViewById(R.id.my_relative_layout_id); – 2017-01-13 03:04:42
您還可以覆蓋onContentChanged()
這其中包括髮射時setContentView()
被調用。
ernest的答案會給你當前的焦點視圖,即使包含可滾動視圖 – YuDroid 2012-09-08 14:06:56
沒有「isContentViewSet」方法。你可以把一些虛擬的requestWindowFeature呼叫到try/catch塊的setContentView之前是這樣的:
try { requestWindowFeature(Window.FEATURE_CONTEXT_MENU); setContentView(...) } catch (AndroidRuntimeException e) { // do smth or nothing }
如果內容視圖已經設置,requestWindowFeature會拋出異常。
如何
View view = Activity.getCurrentFocus();
我找到的最好的選項和較少干擾,是設置標籤PARAM你xml,如
PHONE XML佈局
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="phone"/>
TABLET XML佈局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:tag="tablet">
...
</RelativeLayout>
,然後在活動類稱之爲:
View viewPager = findViewById(R.id.pager);
Log.d(getClass().getSimpleName(), String.valueOf(viewPager.getTag()));
希望工程妳。
這是如何回答這個問題? – Onik 2014-05-06 01:02:30
- 1. 如何獲取Activity的windowToken無視圖?
- 2. Android如何爲整個Activity主內容視圖註冊OnTouchEvent?
- 3. 獲取ContextMenuListener視圖中的內容
- 4. 如何從不擴展Activity的類獲取視圖引用?
- 5. 從組件視圖獲取塊內容
- 6. 如何獲取塊的內容以顯示在視圖中?
- 7. 如何從控制器中的視圖獲取Html內容?
- 8. 如何從視圖中獲取燼數據內容?
- 9. 如何在Android編程中獲取當前內容視圖?
- 10. 如何截取Activity的內容,包括PopupWindows和AlertDialogs?
- 11. 獲取滾動視圖內的視圖
- 12. 如何獲取iframe內容?
- 13. 如何獲取getElementsByTagNameNS內容?
- 14. 如何獲取href內容
- 15. 如何獲取內容?
- 16. framelayout如何獲取內容?
- 17. 獲取滾動視圖中內容視圖子視圖的高度
- 18. 如何從其他Activity類訪問Activity的視圖
- 19. 如何獲取圖像視圖內圖像的圖像路徑?
- 20. 獲取窗口的視覺內容
- 21. 如何獲取矩形內圖像的內容?
- 22. 如何定位UITableViewCell的內容視圖
- 23. 如何重繪UIScrollView的內容視圖
- 24. 如何更改GLSurfaceView的內容視圖?
- 25. 如何獲取我的JTextPane的內容?
- 26. 如何從視圖類獲取視圖?
- 27. 如何獲取TabControl的選定視覺內容?
- 28. 獲取不同的視圖來顯示不同的內容
- 29. Recycler視圖內的內容?
- 30. iOS如何獲得滾動視圖中視圖的內容偏移量
'findViewById(android.R.id.content);'工作正常 – Blundell 2012-02-18 15:42:53
或'getWindow()。findViewById(android.R.id.content)': ) – 2013-06-26 01:54:33
這個工作正常,只要提取父視圖有關... BUt ..如果我嘗試 this.findViewById(android.R.id.content).setBackgroundDrawable(d); it劑量工作.. 你能請建議.. 在此先感謝 – 2013-08-02 09:08:56