获取 NavigationDrawer 中的 SelectedItem 文本
Get the SelectedItem text in NavigationDrawer
我在 Android Studio 中使用导航抽屉的内置模板。
我想从导航抽屉菜单中获取所选项目的文本。
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)
以同时获取一个字符串。然后在onCreateView()
中的OnItemClickListener
中修改为:
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);
}
}
现在您已选择了菜单文本。
我在 Android Studio 中使用导航抽屉的内置模板。
我想从导航抽屉菜单中获取所选项目的文本。
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)
以同时获取一个字符串。然后在onCreateView()
中的OnItemClickListener
中修改为:
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);
}
}
现在您已选择了菜单文本。