2014-01-27 6 views
1

Прежде всего я новичок в разработке Android, а также в java.Приложение для Android: как изменить фрагменты в навигационном ящике

Я создал новый проект с ящиком перемещения фрагментов, , но я действительно не знаю, как добавить и изменить эти новые фрагменты вместе с ним. (Также кажется, что он не меняет никаких фрагментов, просто устанавливает TextView в выбранную позицию.)

Возможно, вы знаете хороший учебник о том, как это сделать (шаг за шагом)? Или не могли бы вы дать мне подсказку о том, как это сделать?

EDIT:

Я нашел решение сам:

@Override 
public void onNavigationDrawerItemSelected(int position) { 

    Fragment fragment; 

    switch(position){ 
     case 0: 
      fragment = new Fragment_main().newInstance(position+1); 
      break; 
     case 1: 
      fragment = new Fragment_two().newInstance(position+1); 
      break; 
     default: 
      fragment = new Fragment_main().newInstance(position +1); 
      break; 
    } 

    // update the main content by replacing fragments 
    FragmentManager fragmentManager = getFragmentManager(); 
    fragmentManager.beginTransaction() 
      .replace(R.id.container, fragment) 
      .commit(); 
} 

вам просто нужно добавить переключатель в этот метод, а также создавать эти классы (и макеты).

Я надеюсь, что это решение помогает всем, кто также борется, как Начинающие или с панелью навигации :)

+0

, к сожалению, это не помогло. Хотя я использую getSupportFragmentManager(), так что это может быть проблемой. Изменение его на getFragmentManager() вызывает много ошибок. – Antinous

+0

@pbs вы можете опубликовать фрагмент кода для своей проблемы? – ninety

+0

@ девяносто Я разработал проблему в конце. В Eclipse автоматически сгенерированный код я использовал созданные статические фрагменты с использованием шаблона Singleton. Как только я удалил этот шаблон и только что созданный экземпляр, обычным способом все работает. – Antinous

ответ

3

Я нашел решение по себе:

@Override 
public void onNavigationDrawerItemSelected(int position) { 

    Fragment fragment; 

    switch(position){ 
     case 0: 
      fragment = new Fragment_main().newInstance(position+1); 
      break; 
     case 1: 
      fragment = new Fragment_two().newInstance(position+1); 
      break; 
     default: 
      fragment = new Fragment_main().newInstance(position +1); 
      break; 
    } 

    // update the main content by replacing fragments 
    FragmentManager fragmentManager = getFragmentManager(); 
    fragmentManager.beginTransaction() 
      .replace(R.id.container, fragment) 
      .commit(); 
} 

вы просто должны добавить переключатель в этот метод , а также создать эти классы (и макеты).

Я надеюсь, что это решение помогает всем, кто также борется, как Начинающие или с панелью навигации :)

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