Как вызвать основной вид деятельности из навигационного ящика - PullRequest
0 голосов
/ 19 сентября 2018

Я создал навигационный ящик, в котором есть домашняя опция, которую я хочу перенаправить в основной вид деятельности.Все остальные параметры открывают фрагмент.

Я получаю сообщение об ошибке, в котором говорится, что геотактивность не определена.Можно ли назвать деятельность из самой деятельности.Если да, могу ли я получить код.

Я удалил некоторую часть кода, так как это по умолчанию при создании ящика навигации.Вот моя основная деятельность:

private void displaySelectedScreen(int itemId) {

    //creating fragment object
    Fragment fragment = null;

    //initializing the fragment object which is selected
    switch (itemId) {
        case R.id.nav_home:
            Intent in = new Intent(this.getActivity(), MainActivity.class);
            startActivity(in);
        case R.id.nav_contact_us:
            fragment = new ContactUs();
            break;
        case R.id.nav_how_to_convert:
            fragment = new HowAppWorks();
            break;
        case R.id.nav_team:
            fragment = new Team();
            break;
    }

    //replacing the fragment
    if (fragment != null) {
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        ft.replace(R.id.content_frame, fragment);
        ft.commit();
    }

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
    drawer.closeDrawer(GravityCompat.START);
}

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {

    displaySelectedScreen(item.getItemId());
    return true;
}

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Примечание: у класса Activity нет метода getActivity ()

startActivity(new Intent(MainActivity.this, MainActivity.class));
finish()
0 голосов
/ 19 сентября 2018

Как вы сказали, что находитесь в MainActivity и все же хотите перейти в MainActivity, заражение это плохой подход. Вы можете просто обновить данные или только перезагрузить представления. Но если все еще хотите, вот проблема в вашем коде, если предположить, чтоMainActivity Code используют MainActivity.this в контексте не это.getActivity ();

Intent in = new Intent(MainActivity.this, MainActivity.class);
startActivity(in);
...