Как получить просмотр содержимого активности?

Какому методу я должен позвонить, если у Activity есть свой контентView (после вызова метода setContentView())?

+233
источник поделиться
7 ответов
this.getWindow().getDecorView().findViewById(android.R.id.content)

или

this.findViewById(android.R.id.content)

или

this.findViewById(android.R.id.content).getRootView()
+461
источник

Вы можете получить представление Назад, если вы поместите идентификатор в свой макет.

<RelativeLayout
    android:id="@+id/my_relative_layout_id"

И назовите его из findViewById...

+19
источник
другие ответы

Связанные вопросы


Похожие вопросы

Вы можете попробовать View.getRootView().

+8
источник

Как насчет

View view = Activity.getCurrentFocus();
+6
источник

Вы также можете переопределить onContentChanged(), который среди других запущен, когда был вызван setContentView().

+5
источник

Нет метода isContentViewSet. Вы можете поместить некоторый фиктивный запрос requestWindowFeature в блок try/catch перед setContentView следующим образом:

try {
  requestWindowFeature(Window.FEATURE_CONTEXT_MENU);
  setContentView(...)
} catch (AndroidRuntimeException e) {
  // do smth or nothing
}

Если представление содержимого уже установлено, requestWindowFeature выдаст исключение.

0
источник

Лучший вариант, который я нашел и менее навязчивый, - установить параметр тэга в вашем 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.

-2
источник

Посмотрите другие вопросы по метке или Задайте вопрос