【问题标题】:How do I load Fragments into my SlidingPaneLayout menu?如何将片段加载到我的 SlidingPaneLayout 菜单中?
【发布时间】:2018-06-05 23:35:12
【问题描述】:

我是新手,请多多包涵。我已经在我的应用程序中实现了一个 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>

【问题讨论】:

    标签: android slidingpanelayout


    【解决方案1】:

    您应该在 XML 文件中创建菜单,然后使用菜单事件处理程序处理事件。 This example 应该可以帮到你。

    主要思想是,当您使用 Android 菜单界面组件时,您可以访问诸如 onCreateOptionsMenuonOptionsItemSelected 之类的事件处理程序,这些处理程序允许您控制您的 UI 流程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-07
      • 1970-01-01
      • 2012-06-16
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多