Какому методу я должен позвонить, если у Activity есть свой контентView (после вызова метода setContentView())?
Как получить просмотр содержимого активности?
Ответ 1
this.getWindow().getDecorView().findViewById(android.R.id.content)
или
this.findViewById(android.R.id.content)
или
this.findViewById(android.R.id.content).getRootView()
Ответ 2
Вы можете получить представление Назад, если вы поместите идентификатор в свой макет.
<RelativeLayout
android:id="@+id/my_relative_layout_id"
И назовите его из findViewById...
Ответ 3
Вы можете попробовать View.getRootView()
.
Ответ 4
Как насчет
View view = Activity.getCurrentFocus();
Ответ 5
Вы также можете переопределить onContentChanged()
, который среди других запущен, когда был вызван setContentView()
.
Ответ 6
Нет метода isContentViewSet. Вы можете поместить некоторый фиктивный запрос requestWindowFeature в блок try/catch перед setContentView следующим образом:
try { requestWindowFeature(Window.FEATURE_CONTEXT_MENU); setContentView(...) } catch (AndroidRuntimeException e) { // do smth or nothing }
Если представление содержимого уже установлено, requestWindowFeature выдаст исключение.
Ответ 7
Лучший вариант, который я нашел и менее навязчивый, - установить параметр тэга в вашем xml, например
ТЕЛЕФОН XML LAYOUT
<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 LAYOUT
<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()));
Надеюсь, что это сработает для u.