我在Android Studio中使用内置的导航Drawer模板。
我想从导航抽屉菜单中获取所选项目的文本。
public void onNavigationDrawerItemSelected(int position) {
// update the main content by replacing fragments
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, PlaceholderFragment.newInstance(position + 1))
.commit();
}
有人能帮忙吗?
最简单的方法是修改回调。
在NavigationDrawerFragment
内滚动到底部,并将NavigationDrawerCallback
更改为包含字符串:
public static interface NavigationDrawerCallbacks {
void onNavigationDrawerItemSelected(int position, String selectedText);
}
要传递这个字符串,您必须修改方法selectItem(item position)
,使其也接受一个字符串。然后在OnItemClickListener
中在onCreateView()
中这样修改:
mDrawerListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView row = (TextView) view;
String selectedText = row.getText().toString();
selectItem(position, selectedText);
}
});
继续,将selectItem(int position)
修改为:
private void selectItem(int position, String selectedText) {
mCurrentSelectedPosition = position;
if (mDrawerListView != null) {
mDrawerListView.setItemChecked(position, true);
}
if (mDrawerLayout != null) {
mDrawerLayout.closeDrawer(mFragmentContainerView);
}
if (mCallbacks != null) {
mCallbacks.onNavigationDrawerItemSelected(position, selectedText);
}
}
现在,您已经选择了菜单文本。