Я показываю диалоговое окно с предупреждением только один раз, когда приложение установлено. В диалоговом окне предупреждения пользователь должен выбрать страну, которая хранится в переменной, прежде чем приложение загрузит данные в соответствии с выбранной страной. Я хочу, чтобы он дождался обработки диалогового окна с предупреждением, прежде чем продолжить ... Ниже приведен мой код
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
isFirstTime();
initialize();
}
private void isFirstTime() {
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
boolean ranBefore = preferences.getBoolean("RanBefore", false);
if (ranBefore == false) {
String[] countries = getResources().getStringArray(R.array.countries);
final String[] countriesCode = getResources().getStringArray(R.array.countries_code);
AlertDialog.Builder mBuilder = new AlertDialog.Builder(this);
mBuilder.setTitle("Choose country");
mBuilder.setSingleChoiceItems(countries, -1, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
String selectedCountry = countriesCode[i];
int selectedCountryIndex = i;
SharedPreferences sharedPref = getSharedPreferences("country", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("selectedCountry", selectedCountry);
editor.putInt("selectedCountryIndex", selectedCountryIndex);
editor.apply();
dialogInterface.dismiss();
}
});
mBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog mDialog = mBuilder.create();
mDialog.show();
SharedPreferences.Editor editor = preferences.edit();
editor.putBoolean("RanBefore", true);
editor.apply();
}
}
private void initialize(){
setContentView(R.layout.activity_main);
toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);
NavigationDrawer navigationDrawer_fragment =
(NavigationDrawer) getSupportFragmentManager().findFragmentById(R.id.mainfragmentdrawer);
navigationDrawer_fragment.setup((DrawerLayout) findViewById(R.id.drawer_layout), toolbar);
final TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
tabLayout.addTab(tabLayout.newTab().setText("Latest"));
tabLayout.addTab(tabLayout.newTab().setText("Categories"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
viewPager = (ViewPager) findViewById(R.id.pager);
adapter = new PagerAdapter(getSupportFragmentManager(), tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.setOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}