android - 如何将片段加载到我的 SlidingPaneLayout 菜单中?
问题描述
我是新手,请多多包涵。我已经在我的应用程序中实现了一个 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>
解决方案
您应该在 XML 文件中创建菜单,然后使用菜单事件处理程序处理事件。这个例子应该对你有所帮助。
主要思想是,当您使用 Android 菜单界面组件时,您可以访问事件处理程序,例如onCreateOptionsMenu
并onOptionsItemSelected
允许您控制 UI 流。
推荐阅读
- java - adMob 横幅广告加载但未显示
- r - 在 R 中,如果我们有 3 级列表,如何自动或基于函数 tabPanel?
- powershell - 如何使用 Powershell 在 IIS 10 上更新站点的“物理路径”?
- dataframe - 作为参数传递的 DF 不起作用,任务不可序列化
- c++ - 快速排序函数在快速排序算法中是如何工作的?
- android - Android更改日期选择器底部按钮栏的颜色
- nativescript - nativescript:如何在字体册中使用同名字体?
- python - 在 Tkinter 中绘制和清除几行
- audio - 从挂起恢复后的 Debian 9 虚拟输出(snd_hda_intel 编解码器)
- laravel - 如何仅将值作为字符串而不是集合返回?