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