Как загрузить фрагменты в меню SlidingPaneLayout? - PullRequest
0 голосов
/ 06 июня 2018

Я новичок, поэтому, пожалуйста, потерпите меня.Я реализовал SlidingPaneLayout в своем приложении.Однако в примере, который я последовал, он заполнил фрагмент меню массивом строк.Я думаю, что это было просто в качестве примера.Как заполнить фрагмент меню ссылками на фрагменты, к которым я хочу предоставить пользователям доступ?

У меня есть список menu с именами фрагментов, которые я хотел бы отобразить, но, похоже, он не реализован.

Вот код из моего фрагмента меню:

public class MainListFragment extends ListFragment {

    private ArrayAdapter<String> mAdapter;

    public static final String[] items = { "Item 1: xxxxxxxxxxxxxxxxx",
            "Item 2: xxxxxxxxxxxxxxxxx", "Item 3: xxxxxxxxxxxxxxxxx",
            "Item 4: xxxxxxxxxxxxxxxxx", "Item 5: xxxxxxxxxxxxxxxxx",
            "Item 6: xxxxxxxxxxxxxxxxx", "Item 7: xxxxxxxxxxxxxxxxx" };

    ListFragmentItemClickListener iItemClickListener;

    /** An interface for defining the callback method */
    public interface ListFragmentItemClickListener {
        /**
         * This method will be invoked when an item in the ListFragment is
         * clicked
         */
        void onListFragmentItemClick(View view, int position);
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        mAdapter = new ArrayAdapter<String>(getActivity(),
                android.R.layout.simple_list_item_1, items);
        setListAdapter(mAdapter);
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        setHasOptionsMenu(true);
        return super.onCreateView(inflater, container, savedInstanceState);
    }

    /** A callback function, executed when this fragment is attached to an activity */
    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try{
            /** This statement ensures that the hosting activity implements ListFragmentItemClickListener */
            iItemClickListener = (ListFragmentItemClickListener) activity;
        } catch(Exception e) {
            Toast.makeText(activity.getBaseContext(),"Exception", Toast.LENGTH_SHORT).show();
        }
    }

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.main_list, menu);
    }

    @Override
    public void onListItemClick(ListView list, View view, int position, long id) {

        /**
         * Invokes the implementation of the method onListFragmentItemClick in
         * the hosting activity
         */
        iItemClickListener.onListFragmentItemClick(view, position);

    }

}

Вот код из списка menu:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group android:checkableBehavior="single">
        <item
            android:id="@+id/nav_ehr"
            android:title="@string/ehr_short" />
        <item
            android:id="@+id/nav_protocols"
            android:title="@string/protocols" />
    </group>
</menu>

1 Ответ

0 голосов
/ 07 июня 2018

Вы должны создать свое меню в XML-файле, а затем обрабатывать события, используя обработчики событий меню. Этот пример должен помочь вам.

Основная идея заключается в том, что при использовании компонентов интерфейса меню Android вы получаете доступ к обработчикам событий, таким как onCreateOptionsMenu и onOptionsItemSelected, которые позволяют вам контролироватьваш поток пользовательского интерфейса.

...