Android AlertDialog не будет отображаться при вызове в меню параметров - PullRequest
2 голосов
/ 07 апреля 2011

Я пытаюсь вызвать AlertDialog, когда вызывается определенная опция в моем меню. То, что выбирает пользователь, важно передать в качестве параметра на страницу XML в сети.

Я попробовал следующее, но мой AlertDialog никогда не показывает, он переходит непосредственно к моей следующей активности.

@Override
    public boolean onOptionsItemSelected(MenuItem item) {    
        // Handle item selection    
        switch (item.getItemId()) {    
        case R.id.kantoor: 
            //Opent de office activity
            final SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
            String arbeiderbed = pref.getString("ArbeiderBediende", "");

            if(arbeiderbed.equals("")){
                final CharSequence[] beroep = {"Arbeider","Bediende"};

                AlertDialog.Builder builder = new AlertDialog.Builder(this);
                builder.setTitle("Kies uw statuut");
                builder.setSingleChoiceItems(beroep, -1, new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO Auto-generated method stub
                        if (beroep[which].equals("Arbeider")){
                            SharedPreferences.Editor editor = pref.edit();
                            editor.putString("ArbeiderBediende", "arbeider");
                            editor.commit(); // Very important
                        }
                        else{
                            SharedPreferences.Editor editor = pref.edit();
                            editor.putString("ArbeiderBediende", "bediende");
                            editor.commit(); // Very important
                        }                           
                    }
                });
                builder.create().show();

            }
            Intent office = new Intent(MainActivity.this, Settings.class);
            startActivity(office);
            return true;

1 Ответ

0 голосов
/ 07 апреля 2011

Конечно, это так. Диалоговые окна предупреждений не являются модальными, это означает, что метод show() не блокирует выполнение дополнительного кода. Если вы хотите, чтобы действие начиналось при закрытии диалогового окна, вы должны поместить вызов, например, в startActivity(), в прослушиватель щелчков кнопки диалога.

...