Как настроить прослушиватель кликов в макете нижнего колонтитула, включенном во многие макеты? - PullRequest
0 голосов
/ 04 февраля 2019

Добрый вечер.

Проблема, с которой я сталкиваюсь, может быть описана следующим образом:

  • У меня много представлений, в которых реализован один и тот же нижний колонтитул (main, list_items, book_item...)
  • Например, в нижнем колонтитуле есть несколько кнопок (Элемент книги, Элементы списка).
  • Мне нужно определить прослушиватель щелчков на кнопках нижнего колонтитула так, чтобы я мог использовать его повторно.это в каждом макете, который включает этот нижний колонтитул.

Пока что я могу заставить кнопки нижнего колонтитула работать, только если я установил прослушиватель щелчка в каждом действии, связанном с макетами, которые включают нижний колонтитул.

Как вы предлагаете решить эту проблему?Ваша помощь и детали очень ценятся, потому что я новичок в разработке Android.

Мой код похож на следующее:

Layout1.xml

<content>...</content>
<include layout="@layout/footer_layout"></include>

Layout2.xml

<content>...</content>
<include layout="@layout/footer_layout"></include>

footer.xml

<Button>List Items</Button>
<Button>Book Item</Button>

1 Ответ

0 голосов
/ 04 февраля 2019

Вы можете создать фрагмент для своего footer_layout, затем добавить его и повторно использовать в каждом упражнении.

Использование фрагмента позволит вам полностью модульно выполнить ваши действия, вы можете объединить несколько фрагментов в одном действиисоздать многопанельный пользовательский интерфейс, как на планшете, и вы можете повторно использовать один фрагмент в нескольких действиях, что вам и нужно.

Ознакомьтесь с документацией: https://developer.android.com/guide/components/fragments

1- Создайте FooterFragment:

public class FooterFragment extends Fragment {

  //Mandatory constructor for instantiating the fragment
  public FooterFragment() {
  }
  /**
     * Inflates the fragment layout file footer_layout
     */
  @Override
    public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View rootView = inflater.inflate(R.layout.footer_layout, container, false);

        // write your buttons and the OnClickListener logic
        ...

        // Return the rootView
        return rootView;
    }
}

2- Создайте ваш фрагмент_лайта.xml

<?xml version="1.0" encoding="utf-8"?>
<fragment
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/footer_fragment"
    android:name="com.example.android.FooterFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

3 - Теперь вы можете включить фрагмент_лайта во все файлы макетов XML требуемых действий.

...