Ошибка при замене фрагментов в navbar в Android studio - PullRequest
0 голосов
/ 06 марта 2019

Я работаю с Navbar в Android Studio. Я пытаюсь заменить фрагменты через getSupportFragmentManager (). BeginTransaction (). Replace (), но он не работает и постоянно выдает ошибку. Вот код:

public class UserNavbar extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{

private DrawerLayout mydrawerlayout;
private ActionBarDrawerToggle atoggle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_navbar);

    mydrawerlayout = (DrawerLayout)findViewById(R.id.drawer_layout);

    atoggle = new ActionBarDrawerToggle(this,mydrawerlayout,R.string.open,R.string.close);  //Done
    mydrawerlayout.addDrawerListener(atoggle);
    atoggle.syncState();  
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    NavigationView navigationView = findViewById(R.id.nav_view);
    navigationView.setNavigationItemSelectedListener(this);
}

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
  switch (menuItem.getItemId()){
        case R.id.home:
            getSupportFragmentManager().beginTransaction().replace(R.id.frame, new User_Home_Fragment()).commit();
            break;
        case R.id.personalinformation:
            getSupportFragmentManager().beginTransaction().replace(R.id.frame, new Personal_Info_Frag()).commit();
            break;
        case R.id.settings:

getSupportFragmentManager().beginTransaction().replace(R.id.frame, new Settings_Frag()).commit();
            break;
}
mydrawerlayout.closeDrawer(GravityCompat.START);
    return true;
}}

Вот ошибка: Error Message

Разработаны User_Home_Fragment (), Personal_Info_Frag () и Settings_Frag (). Я опубликую их тоже при необходимости.

Я буду благодарен, если у кого-нибудь есть предложения. Привет

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Я думаю, что вы пропустили новое ключевое слово, потому что replace метод имеет два аргумента: первый - идентификатор контейнера, а второй - экземпляр фрагмента.

getSupportFragmentManager().beginTransaction().replace(R.id.frame, new User_Home_Fragment()).commit();
0 голосов
/ 06 марта 2019

Пожалуйста, напишите new Ключевое слово перед вызовом Вашего фрагмента.ig

new User_Home_Fragment()
...