2015-03-23 2 views
0

Я использую встроенный шаблон для навигации Ящик в Android Studio.Получить текст SelectedItem в NavigationDrawer

Я хочу получить текст выбранного элемента из меню навигационного ящика.

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(); 
} 

Может ли кто-нибудь помочь?

ответ

0

Самый простой способ - изменить обратный вызов.

Внутри 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); 
    } 
} 

И теперь у вас есть выделенный текст меню.

+0

Спасибо! это сработало для меня @ Аштон – Riyaz

Смежные вопросы