2013-09-01 63 views
1

我已經把這個更早一些,但不知何故,這是凍結。所以做一個重複的。Android alertdialogue生成器返回布爾值

我擰了一個簡單的腳本,其中有兩個選項的確認框。我需要在一次活動中多次調整它。所以我做了一個方法來做到這一點。基於返回的布爾值,我想寫出條件語句。

// Before oncreate 

static boolean confirmation;

private void showConfirmation() { 
     // UserFunctions userFunctions = null; 
     // TODO Auto-generated methodastub 

     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ProfileActivity.this); 

     // set title 
     alertDialogBuilder.setTitle("test"); 
     // set dialog message 
     alertDialogBuilder.setMessage("Please update the unfilled fields.").setCancelable(false) 
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 

         dialog.cancel(); 
         confirmation = false; 

        } 
       }).setNegativeButton("Later on", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 

         confirmation = true; 
        } 
       }); 

     // create alert dialog 
     AlertDialog alertDialog = alertDialogBuilder.create(); 

     // show it 
     alertDialog.show(); 

}  









public void myOnClicktest(View v) { 

    showConfirmation(); 
    if (confirmation){ 

    Intent intent = new Intent(getApplicationContext(), NewActivity.class); 
    startActivity(intent); 
    } 
} 
+0

你的方法返回類型是void它應該是布爾值,如果你想返回true或false – Raghunandan

回答

1

不喜歡這個 -

alertDialogBuilder.setMessage("Please update the unfilled fields.").setCancelable(false) 
       .setPositiveButton("Ok", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 

         dialog.cancel(); 
         confirmation = false; 

        } 
       }).setNegativeButton("Later on", new DialogInterface.OnClickListener() { 
        @Override 
        public void onClick(DialogInterface dialog, int id) { 
         Intent intent = new Intent(getApplicationContext(), NewActivity.class); 
         startActivity(intent); 
        } 
       }); 

因爲在你的情況你的代碼不會等待確認值對話框中改變它跳過對話框,默認情況下確認值是假的。

+0

對不起!現在編輯。但它總是變得虛假。 – user2534310

+0

我編輯了答案.. –

+0

但是,setNegativeButton不僅會啓動該活動,還會調用其他任務。基本上我需要調用showConfirmation()來執行不同的任務。 – user2534310