2016-10-15 81 views
0

我有一個按鈕單擊它選擇ListView中的所有選中的複選框,並顯示AlertDialog中的所有選中框。for循環數組列表警報對話框

我迭代所有元素與for循環,我有一個positiveButton和一個negativeButton - 當我按negativeButton我想要取消所有對話框,並返回到應用程序。
但是相反,當我按下negativeButton時,它會一個接一個地迭代。

btnDialog = (Button) findViewById(R.id.btnDialog); 
btnDialog.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     StringBuffer responseText = new StringBuffer(); 
     //responseText.append("הפריטים שנבחרו הם: \n"); 
     Models models = new Models(); 
     //List<Models> modelList = new ArrayList<>(); 
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); 
     alertDialogBuilder.setTitle("Diet Product"); 
     responseText.append("הפריטים שנבחרו הם: \n"); 
     Log.d(responseText.toString(), msg); 

     for (int i = 0; i < (modelList.size()); i++) { 
      models = modelList.get(i); 
      if (models.isSelected()) { 
       alertDialogBuilder 
         .setMessage(responseText.append(models.getName() + " : " + models.getProtein() + "\n")) 
         .setCancelable(false) 
         .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           // if this button is clicked, close current activity 
           MainActivity.this.finish(); 
          } 
         }) 
         .setNegativeButton("No", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 

           dialog.dismiss(); 
          } 
         }); 
       AlertDialog alertDialog = alertDialogBuilder.create(); 
       alertDialog.show(); 

      } 
     } 

    } 
}); 
+1

它不重複回來,解聘所有你一次 –

+0

打開感謝您的答案 - 的那些的最頂端對話那麼你的建議是什麼?我嘗試使用「dialog.cancel();」但它也是這樣做的! – guydroid123

+0

不是一個答案,只是一個評論。我真的不知道如何回答,但我會建議不要在循環中打開許多對話框窗口 –

回答

1

我相信,我來解決這個問題

 btnDialog = (Button) findViewById(R.id.btnDialog); 
     btnDialog.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       StringBuffer responseText = new StringBuffer(); 
       AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); 
       alertDialogBuilder.setTitle("Diet Product"); 
       responseText.append("הפריטים שנבחרו הם: \n"); 

       for(int i=0;i<modelList.size();i++){ 
        Models models = modelList.get(i); 
        if(models.isSelected()){ 
         responseText.append("\n" + models.getName()+ " : "+models.getProtein() +"\n"); 
        } 
       } 

       alertDialogBuilder 
         .setMessage(responseText.append("\n"+"לחישוב ערכים לחץ המשך " +"\n"+"או חזור לעידכון פרטים"+ "\n")) 
         .setCancelable(false) 
         .setPositiveButton("המשך", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 
           // if this button is clicked, close current activity 
           //MainActivity.this.finish(); 
           Intent intent = new Intent(getApplicationContext(),ItemActivity.class); 
           intent.putExtra(models.getName(),"name"); 
           startActivity(intent); 
          } 
         }) 
         .setNegativeButton("חזור", new DialogInterface.OnClickListener() { 
          public void onClick(DialogInterface dialog, int id) { 

           dialog.cancel(); 
          } 
         }); 
       AlertDialog alertDialog = alertDialogBuilder.create(); 
       alertDialog.show();