Android Как извлечь элементы из XML-файла макета, который находится в ViewPager в двух словах
У меня есть файл activity_main.xml, одним из элементов которого является android.support.v4.view.ViewPager. То, что я пытаюсь сделать динамически в коде, это извлечь элемент или из XML-файла, который в данный момент загружен внутри ViewPager.
Я пытаюсь добраться до флажка @+id/ фрагмент_overview_graph_glucose, который находится внутри фрагмента_overview.xml (который является текущей страницей в ViewPager. Я попытался получить активное представление и получить адаптер, но я не уверен, как поступить оттуда. Я довольно новичок в Android. Буду признателен за любую помощь. Заранее спасибо. Обратите внимание, я нахожусь в классе, который не является действием, но вызывается классом Main Activity и получает ссылку на Activity.
ViewPager pager = (ViewPager) activity.findViewById(R.id.activity_main_pager);
View activeView = pager.getChildAt(pager.getCurrentItem());
PagerAdapter adapter = pager.getAdapter();
activity_main.xml
<android.support.design.widget.AppBarLayout
android:id="@+id/activity_main_appbar_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/activity_main_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_scrollFlags="scroll|enterAlways"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
<android.support.design.widget.TabLayout
android:id="@+id/activity_main_tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabIndicatorColor="@color/glucosio_accent"
app:tabSelectedTextColor="@android:color/white"
app:tabTextColor="#80ffffff" />
</android.support.design.widget.AppBarLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" android:weightSum="100">
<android.support.v4.view.ViewPager
android:id="@+id/activity_main_pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:visibility="visible"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_weight="100"
/>
<FrameLayout
android:id="@+id/chci_fragment_holder"
android:layout_width="match_parent"
android:layout_gravity="bottom"
android:layout_height="0dp"
android:tag="chci_framelayout_tag"
android:layout_weight="0"
>
</FrameLayout>
<!--
<android.support.v4.view.ViewPager
android:id="@+id/activity_main_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="visible"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_weight="90"/>
<FrameLayout
android:id="@+id/chci_fragment_holder"
android:layout_width="match_parent"
android:layout_gravity="bottom"
android:layout_height="0dp"
android:layout_weight="10"
>
</FrameLayout> -->
</LinearLayout>
<LinearLayout
android:id="@+id/activity_main_empty_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="#ffffff"
android:baselineAligned="false"
android:orientation="vertical"
android:backgroundTint="@color/red"
android:weightSum="100"
android:layout_weight="0.8"
>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="45">
<TextView
android:id="@+id/activity_main_empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:gravity="center|bottom"
android:lineSpacingExtra="-1dp"
android:text="@string/fragment_empty_text"
android:textSize="16sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="55">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="false"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"></TextView>
<RelativeLayout
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_marginRight="32dp"
android:layout_marginTop="@dimen/abc_action_bar_content_inset_material"
android:layout_weight="1">
<ImageView
android:id="@+id/activity_main_arrow"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginBottom="@dimen/fab_size_normal"
android:layout_marginRight="@dimen/fab_size_normal" />
</RelativeLayout>
</LinearLayout>
</RelativeLayout>
</LinearLayout>
<!--
<FrameLayout
android:id="@+id/chci_fragment_holder"
android:layout_width="match_parent"
android:layout_gravity="bottom"
android:layout_height="wrap_content"
>
</FrameLayout> -->
<com.github.clans.fab.FloatingActionButton
android:id="@+id/activity_main_fab_add_reading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_gravity="bottom|right"
android:layout_marginBottom="16dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="16dp"
android:onClick="addNewGlucoseReading"
android:src="@drawable/ic_add_black_24dp"
app:fab_colorNormal="@color/glucosio_accent"
app:fab_colorPressed="@color/glucosio_accent"
app:fab_colorRipple="#99FFFFFF"
app:fab_size="normal" />
</android.support.design.widget.CoordinatorLayout>
frag_overview.xml - текущий xml-файл, загруженный в ViewPager.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="16dp"
android:layout_marginTop="16dp"
android:background="#ffffff"
tools:context="org.glucosio.android.fragment.OverviewFragment"
tools:ignore="MissingPrefix">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="@dimen/fab_size_normal">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Spinner
android:id="@+id/chart_spinner_range"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:dropDownWidth="wrap_content"
android:spinnerMode="dropdown" />
<Spinner
android:id="@+id/chart_spinner_metrics"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="8dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp"
android:layout_marginTop="16dp"
android:dropDownWidth="wrap_content"
android:spinnerMode="dropdown"
android:visibility="gone" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1" />
<ImageButton
android:id="@+id/fragment_overview_graph_export"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="?attr/selectableItemBackgroundBorderless"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:src="@drawable/ic_photo_black_24dp" />
</LinearLayout>
<com.github.mikephil.charting.charts.LineChart
android:id="@+id/chart"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:paddingLeft="16dp"
android:paddingRight="16dp" />
<TextView
android:layout_width="fill_parent"
android:layout_height="2px"
android:layout_marginBottom="16dp"
android:layout_marginTop="16dp"
android:background="#DADADA" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginLeft="32dp"
android:layout_marginRight="32dp"
android:orientation="horizontal">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="0.5"
android:orientation="vertical">
<CheckBox
android:id="@+id/fragment_overview_graph_glucose"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:button="@drawable/selector_checkbox_glucose"
android:checked="true"
android:padding="4dp"
android:text="@string/fab_glucose"
android:textColor="@color/glucosio_text_light"
android:textSize="12sp" />
<CheckBox
android:id="@+id/fragment_overview_graph_a1c"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:button="@drawable/selector_checkbox_a1c"
android:padding="4dp"
android:text="@string/fab_HB1AC"
android:textColor="@color/glucosio_text_light"
android:textSize="12sp" />
<CheckBox
android:id="@+id/fragment_overview_graph_ketones"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:button="@drawable/selector_checkbox_ketones"
android:padding="4dp"
android:text="@string/fab_ketones"
android:textColor="@color/glucosio_text_light"
android:textSize="12sp" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.5"
android:orientation="vertical">
<CheckBox
android:id="@+id/fragment_overview_graph_weight"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:button="@drawable/selector_checkbox_weight"
android:padding="4dp"
android:text="@string/fab_weight"
android:textColor="@color/glucosio_text_light"
android:textSize="12sp" />
<CheckBox
android:id="@+id/fragment_overview_graph_pressure"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:button="@drawable/selector_checkbox_pressure"
android:padding="4dp"
android:text="@string/fab_pressure"
android:textColor="@color/glucosio_text_light"
android:textSize="12sp" />
<CheckBox
android:id="@+id/fragment_overview_graph_cholesterol"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:button="@drawable/selector_checkbox_cholesterol"
android:padding="4dp"
android:text="@string/fab_cholesterol"
android:textColor="@color/glucosio_text_light"
android:textSize="12sp" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="2px"
android:layout_marginTop="16dp"
android:background="#DADADA" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
fontPath="fonts/lato-bold.ttf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/fragment_overview_last_reading"
android:textColor="@color/glucosio_text" />
<TextView
android:id="@+id/item_history_reading"
fontPath="fonts/lato-bold.ttf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="16dp"
android:text="100 mg/dL"
android:textColor="@color/glucosio_text" />
<TextView
android:id="@+id/fragment_overview_last_date"
fontPath="fonts/lato.ttf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="16dp"
android:text="Thu, 22 dic 2016"
android:textColor="@color/glucosio_text_light" />
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:text=""
android:visibility="gone">
<TextView
fontPath="fonts/lato-bold.ttf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
android:text="@string/fragment_overview_trend"
android:textColor="@color/glucosio_text_light" />
<TextView
android:id="@+id/item_history_trend"
fontPath="fonts/lato-bold.ttf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="8dp"
android:text="@string/fragment_overview_trend_positive"
android:textColor="@color/glucosio_text_green" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="2px"
android:layout_marginTop="16dp"
android:background="#DADADA" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
fontPath="fonts/lato-bold.ttf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="@string/overview_hb1ac"
android:textColor="@color/glucosio_text" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginLeft="2dp"
android:layout_marginRight="4dp"
android:layout_marginTop="16dp"
android:onClick="onA1cInfoClicked"
app:srcCompat="@drawable/ic_error_outline_black_24dp" />
<TextView
android:id="@+id/fragment_overview_hb1ac"
fontPath="fonts/lato-bold.ttf"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginTop="16dp"
android:text="6.5%"
android:textColor="@color/glucosio_text" />
<TextView
android:id="@+id/fragment_overview_hb1ac_date"
fontPath="fonts/lato.ttf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="16dp"
android:layout_weight="1"
android:text="December"
android:textColor="@color/glucosio_text_light"
android:visibility="visible" />
<ImageButton
android:id="@+id/fragment_overview_a1c_more"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="?android:attr/selectableItemBackground"
app:srcCompat="@drawable/ic_unfold_more_black_24dp" />
</LinearLayout>
</LinearLayout>
<TextView
android:layout_width="fill_parent"
android:layout_height="2px"
android:background="#DADADA" />
<TextView
fontPath="fonts/lato-bold.ttf"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="@string/tab_tips"
android:textColor="@color/glucosio_text" />
<TextView
android:id="@+id/random_tip_textview"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="64dp"
android:layout_marginTop="8dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:text="Always bring a banana to a party, Rose, bananas are good!"
android:textColor="@color/glucosio_text" />
<!-- <FrameLayout
android:id="@+id/chci_fragment_holder"
android:layout_width="match_parent"
android:layout_gravity="bottom"
android:layout_height="wrap_content" >
</FrameLayout> -->
</LinearLayout>
</ScrollView>