Я предполагаю, что вы ожидаете какой-то способ связывания данных в XML (например, как в МОФ). В андроиде нет привязки данных (по крайней мере, без сторонних библиотек).
У вас есть метод onCreateView() для фрагмента. Там вы ловите ссылки на эти объекты TextView, как это:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment, container,
false);
TextView myTextView1 = (TextView)view.findViewById ("textView1");
TextView myTextView2 = (TextView)view.findViewById ("textView2");
return view;
}
Там вы можете также установить значение этих TextViews, или вы можете установить его последним в коде следующим образом:
myTextView1.setText ("this is my textview1 test");
Итак, в заключение - нет типичного внутри XML-привязки данных в android, вы должны найти эти представления в коде фрагмента, а затем манипулировать ими.
EDIT:
, если у вас есть данные где-то в деятельности, и вы хотите передать его на фрагмент, когда вы создаете его, вы можете использовать фрагмент setArgument() функция (и соответствующие getArguments()).
У вас есть пример здесь: Setting Fragment arguments from Activity - в принятом ответе.
EDIT 2:
Согласно новым данным Binding библиотеки это можно сделать обязательным, как это:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.example.User"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.lastName}"/>
</LinearLayout>
</layout>
ссылка: https://developer.android.com/tools/data-binding/guide.html
Но обратите внимание, что это все еще бета-версия.
Итак, я должен был бы иметь множество условий «если» и сказать: if (name.equals («configFragment»)) {text1.setText («Config»); text2.setText («Описание конфигурации»;) if (name.equals («planFragment»)) {text1.setText («План»); text2.setText («Описание плана»); } etc ... Это то, что вы подразумеваете под своим ответом? Thx – Matyas
Можете ли вы объяснить, если ваш вопрос: 1.) Можно ли поместить данные в макет xml и использовать его в фрагменте в привязке данных или настройке? - ответ - нет. или 2.) Как передавать данные между фрагментом и активностью? – daneejela
Да, вопрос был 1), поэтому я очень озадачен, что это невозможно. Я просто пытаюсь создать индивидуальные значки на главном экране с единым макетом и иметь на них разные ярлыки. Это можно сделать в коде, но просто кажется странным, что он не поддерживается. Возможно, я атакую это с неправильным углом? Я просто хочу использовать повторно используемые компоненты пользовательского интерфейса с некоторыми данными, которые вводятся при создании экземпляра. – Matyas