Я пытаюсь создать приложение для Android с BottomNavigationView и фрагментами.Мой код:
public class MainActivity extends AppCompatActivity {
//some code
//some code
//some code
//some code
private BottomNavigationView.OnNavigationItemSelectedListener
mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
getFragmentManager().beginTransaction().replace(R.id.myframe, new myframeHome).commit();
return true;
case R.id.navigation_dashboard:
getFragmentManager().beginTransaction().replace(R.id.myframe, new myframeDashboard).commit();
return true;
case R.id.navigation_notifications:
getFragmentManager().beginTransaction().replace(R.id.myframe, new myframeNotifications).commit();
return true;
}
return false;
}
};
}
Должен ли я каждый раз создавать новый объект каждого класса, когда пользователь выбирает другой элемент в меню?
Рекомендуется ли создавать один объект для каждого класса, как показано ниже?
public class MainActivity extends AppCompatActivity {
//some code
//some code
//some code
//some code
private final Fragment home = new myframeHome();
private final Fragment dashboard = new myframeDashboard();
private final Fragment notifications = new myframeNotifications();
private BottomNavigationView.OnNavigationItemSelectedListener
mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_home:
getFragmentManager().beginTransaction().replace(R.id.myframe, home).commit();
return true;
case R.id.navigation_dashboard:
getFragmentManager().beginTransaction().replace(R.id.myframe, dashboard).commit();
return true;
case R.id.navigation_notifications:
getFragmentManager().beginTransaction().replace(R.id.myframe, notifications).commit();
return true;
}
return false;
}
};
}
Какой из двух методов мне следует использовать?