Я, наконец, понял после некоторых исследований, как заставить мой dialogfragment
отправлять результаты в мою деятельность, теперь я хочу передать эти результаты фрагменту, который действительно вызывает этот фрагмент диалога (это средство выбора даты, поэтому я хочу обновить Дата).
Я видел это здесь: Вызов событий фрагмента из активности
Вышеизложенное дало мне некоторые идеи, но по какой-то причине мой макет фрагментов определен в XML и не имеет идентификатора, поэтому я не могу использовать вызов:
findFragmentById(R.id.fragmentBId);
Так что я либо неправильно определяю в xml свой макет (это мой фрагмент), либо есть другой способ сделать это.
В моем макете xml есть весь мой макет (все кнопки, текстовые представления, линейные макеты и т. д.). Хотя я ни разу ни разу не сказал <fragment .... />
. Но я продолжил расследование и увидел на этой странице:
http://developer.android.com/guide/topics/fundamentals/fragments.html
Именно так предполагалось определить фрагмент. Итак, для полноты вот мой xml-файл, который теперь выдает ошибку Error: inflating class fragment
в строке, где я определяю фрагмент.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment android:name="com.viciousbytes.studiotab.subactivities.SessionEdit"
android:id="@+id/session_fragment"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="match_parent">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:textSize="20sp"
android:text = "Client Name:"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="left"/>
<TextView
android:id="@+id/client_name"
android:gravity="center"
android:textSize="20sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
etc...
etc...
</fragment>
</LinearLayout>
Итак, что мне не хватает? или идентификатор, на который я ссылаюсь, должен указывать на другой xml, в котором есть весь этот пользовательский интерфейс? Я немного смущен тем, как он хочет, чтобы я это настроил. Он работал без тега фрагмента, но тогда у меня не было возможности позвонить:
SessionEdit session = (SessionEdit)getSupportFragmentManager().findFragmentById(R.id.session_fragment);
Я просто хочу, чтобы средство выбора даты в диалоговом окне отправляло информацию во фрагмент, вызвавший его.
Я видел демонстрацию средства выбора даты в диалоговом окне, но мне пришлось изменить его, чтобы использовать DialogFragment
, и я, должно быть, пропустил "jist".