NavigationDrawer и фрагменты

397
01 января 2017, 18:07

Добрый день! Делаю приложение на андроид, решил взять интерфейс с NavigationDrawer и фрагментами. То есть, в дравере несколько вкладок, при нажатии в контейнер должен загружаться определенный фрагмент. Однако при нажатии на кнопку, приложение крашится. В чем может быть проблема?

Mainactivity.java:

public class MainActivity extends AppCompatActivity {
    DefaultFragment frag1;
    SettingsFragment frag2;
    StatisticFragment frag3;
    HeroesFragment frag4;
    FragmentTransaction ftrans;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        frag1 = new DefaultFragment();
        frag2 = new SettingsFragment();
        frag3 = new StatisticFragment();
        ftrans = getSupportFragmentManager().beginTransaction();
        ftrans.add(R.id.fragment_container, frag1);
        ftrans.commit();

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        //navdrawer
        new DrawerBuilder().withActivity(this);
        PrimaryDrawerItem item1 = new PrimaryDrawerItem().withIdentifier(1).withName(R.string.drawer_item_stat);//первый объект в дравере (Статистика)
        SecondaryDrawerItem item2 = new SecondaryDrawerItem().withIdentifier(2).withName(R.string.drawer_item_settings);//второй(Настройки)
        SecondaryDrawerItem item3 = new SecondaryDrawerItem().withIdentifier(3).withName(R.string.drawer_item_heroes);//третий(Герои)

        Drawer result = new DrawerBuilder()
                .withActivity(this)
                .withToolbar(toolbar)
                .addDrawerItems(
                        item1,
                        item2,
                        item3)
                .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
                    @Override
                    public boolean onItemClick(View view, int position, IDrawerItem drawerItem) {
                        ftrans = getSupportFragmentManager().beginTransaction();
                        switch ((int) drawerItem.getIdentifier()) {
                            case 1:
                                ftrans.replace(R.id.fragment_container, frag3);
                            case 2:
                                ftrans.replace(R.id.fragment_container, frag2);
                            case 3:
                                ftrans.replace(R.id.fragment_container, frag4);
                        }
                        ftrans.commit();
                        return true;
                    }
                }).build();
    }
}`
READ ALSO
Как изменить значение select при изменении другого select

Как изменить значение select при изменении другого select

Есть jsp-страница, на нее я передаю в select список стран, у каждой страны есть список городов, который есть в моей БД отдельной таблицейКак сделать...

530
Организация swing приложения [требует правки]

Организация swing приложения [требует правки]

Где можно почитать про правильную организацию(проектирование) swing приложения: где выделять память, инициализровать, добавлять слушателей...

391
Асинхронная загрузка данных в список

Асинхронная загрузка данных в список

У меня есть фрагмент, который содержит ListViewListView я заполняю адаптером

492
Кто-нибудь может объяснить

Кто-нибудь может объяснить

Даны ссылочные переменные hq [0], hq [1], hq [2], hq [3], hq [4] и объекты id = 0, id = 1, id = 2Какие ссылочные переменные соответствуют объектам

454