2
我试图在调用菜单中的某个选项时调用AlertDialog。用户选择的内容非常重要,可以作为参数传递给网络上的XML页面。Android AlertDialog不会在菜单选项中调用时显示
我试过以下,但我的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;
好的。但用户可能已经在他的设置中指定了他的选择。这就是为什么我打电话给我的SharedPreferences。如果指定,应用程序需要触发Activity而不弹出AlertDialog。 – Hannelore 2011-04-07 13:46:40
这样做没有复制代码... – Hannelore 2011-04-07 13:53:11
好吧,然后将调用活动的代码提取到方法中并调用该方法。你也应该有一个调用这个方法的'else'分支。 – 2011-04-07 13:57:10