当我调用菜单中的某个选项时,我正在尝试调用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;
答案 0 :(得分:0)
当然可以。警报对话框不是模态的,这意味着show()
方法不会阻止执行其他代码。如果您希望在对话框关闭时启动活动,则应将对startActivity()
的调用放入对话框按钮的单击侦听器中。