Моя проблема заключается в том, что у меня есть несколько RelativeLayouts в LinearLayout внутри ScrollView, который находится в основном RelativeLayout. Когда я пытаюсь получить идентификатор в классе фрагментов, я продолжаю давать мне ошибки.Извлечение идентификаторов из вложенных макетов
Я огляделся в поисках ответа на это в течение примерно 2 дней, и теперь пришел только через идею использования
<include name="some_name" layout="@layout/some_layout"/>
и это не помогает мне с моим приложением. Я пытаюсь разработать представление календарной недели, которое у меня уже есть, и время слева.
Вот мой XML-файл:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/day_labels_linear_layout"
android:layout_width="match_parent"
android:layout_height="60dp"
android:orientation="horizontal">
<!-- not important but this holds the numbers up top -->
</LinearLayout>
<ScrollView
android:id="@+id/calendar_scroll_view"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_alignParentBottom="true"
android:layout_below="@+id/day_labels_linear_layout"
android:fadingEdge="none"
android:overScrollMode="never"
android:scrollbars = "none">
<!-- used to space each day with the day_labels_linear_layout weights -->
<LinearLayout
android:id="@+id/calendar_spacer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<!--This has all of the hours, I just didn't include them
because it would take up so much room-->
<RelativeLayout
android:id="@+id/hours_relative_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2.5"
android:background="@color/scheduler_background" >
<TextView
android:id="@+id/time_12_am"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:paddingBottom="25dp"
android:paddingTop="25dp"
android:text="@string/text_time_12_am" />
<TextView
android:id="@+id/time_1_am"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/time_12_am"
android:layout_centerHorizontal="true"
android:paddingBottom="25dp"
android:paddingTop="25dp"
android:text="@string/text_time_1_am" />
<TextView
android:id="@+id/time_2_am"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/time_1_am"
android:layout_centerHorizontal="true"
android:paddingBottom="25dp"
android:paddingTop="25dp"
android:text="@string/text_time_2_am" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/sunday_relative_layout"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2" >
<View
android:id="@+id/divider_sunday_left"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:background="@color/divider_scheduler" />
<Button
android:id="@+id/sunday_day"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:background="@color/transparent" />
<View
android:id="@+id/divider_sunday_right"
android:layout_width="1dp"
android:layout_height="match_parent"
android:layout_alignParentRight="true"
android:background="@color/divider_scheduler" />
</RelativeLayout>
<!-- there is a Relative layout for each day-->
</LinearLayout>
</ScrollView>
</RelativeLayout>
Так что, когда я пытаюсь получить доступ к идентификаторам это то, что я получаю:
RelativeLayout sundayRL;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState){
View view = inflater.inflate(R.layout.fragment_scheduler, null);
sundayRL = (RelativeLayout) view.findViewById(R.id.sunday_relative_layout);
}
Это дает мне ошибку: sunday_relative_layout не может быть разрешен или а не поле, я добавил кнопку, чтобы узнать, могу ли я получить идентификатор для этого и тот же результат. Тем не менее, мне удалось найти идентификатор для каждого из чисел дня и дней, которые находятся в верхней строке LinearLayout.
У кого-нибудь есть лучшее решение? Я пытаюсь зарегистрироваться, когда пользователь нажимает на представление, чтобы я мог отправить их на страницу планирования.
EDIT: Так изменение нулевого контейнера позволило мне найти мои Идентификаторы
View view = inflater.inflate(R.layout.fragment_scheduler, container);
Но это вызвало еще одну проблему с фрагментом карты на одном из других фрагментов говорит, что я не имел правильный ключ API который он делает.
Просто проверка, Является ли код макета вы вывешено 'fragment_scheduler'? –
Да, это мой xml-файл –
Почему вы не используете GridView для отображения предметов того же типа? –