bottom navigation sets locale on startup and language change. Fixed a bug where the selected fragment changes when rotated.

This commit is contained in:
Bart
2021-01-06 12:21:31 +01:00
parent 6dd2f5de40
commit 1cf973da9b
3 changed files with 38 additions and 14 deletions

View File

@@ -30,8 +30,9 @@ import java.io.File;
import java.util.Arrays;
import java.util.Locale;
public class MainActivity extends AppCompatActivity {
public class MainActivity extends AppCompatActivity implements Refreshable{
private static final String TAG = MainActivity.class.getName();
private BottomNavigationView bottomNav;
/**
* onCreate method that creates the main activity
@@ -40,12 +41,12 @@ public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setLocale(loadLocale());
setContentView(R.layout.activity_main);
BottomNavigationView bottomNav = findViewById(R.id.navbar);
bottomNav = findViewById(R.id.navbar);
bottomNav.setOnNavigationItemSelectedListener(navListener);
/*System.out.println(Arrays.toString(getFilesDir().listFiles()));
FileIO<Route> fileIO = new FileIO<>();
fileIO.writeFileData(new Route("TERSTSET"), getApplicationContext());
@@ -59,9 +60,9 @@ public class MainActivity extends AppCompatActivity {
RouteListManager.INSTANCE.load();
// initialize saved language from sharedPreferences
setLocale(loadLocale());
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, new HomeFragment()).commit();
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, new HomeFragment()).commit();
}
}
/**
@@ -107,4 +108,14 @@ public class MainActivity extends AppCompatActivity {
getSupportFragmentManager().beginTransaction().replace(R.id.fragment_layout, selectedFragment).commit();
return true;
};
/**
* refreshes bottom navigation
*/
@Override
public void refresh() {
bottomNav.getMenu().clear();
bottomNav.inflateMenu(R.menu.navmenu);
bottomNav.setSelectedItemId(R.id.settings);
}
}