无法显示多个对话框

时间:2013-03-02 08:04:01

标签: android android-alertdialog

我需要在android中显示'n'自定义对话框。我在while循环外创建了对话框并在循环内设置了消息。我需要根据循环显示包含不同消息的对话框。但是它在dialog.show()行中显示了android.view.WindowLeaked异常。任何人都可以帮助我解决我的问题。

我的代码是这样的:

//notif_count is the row count
if(notif_count>0)
{
 dialog = new Dialog[notif_count];
 for(ct=0;ct<notif_count;ct++)
 {
  dialog[ct] = new Dialog(this);
  dialog[ct].requestWindowFeature(Window.FEATURE_NO_TITLE);
  dialog[ct].setContentView(R.layout.custom_dialog_alert);
 }

  cursor.moveToFirst();
  ct = 0;
  do
  {
     dec_name =cursor.getString(cursor.getColumnIndex(Database_Handler.name));

     TextView tv_alert = (TextView)dialog[ct].findViewById(R.id.txt_alert);
     tv_alert.setText( dec_name );

     Button yes = (Button) dialog[ct].findViewById(R.id.btn_yes);
     Button no = (Button) dialog[ct].findViewById(R.id.btn_no);

     yes.setOnClickListener(new OnClickListener()
     {
       public void onClick(View v) 
       {
             Intent intent = new Intent(Intent.ACTION_VIEW);
             intent.setData(Uri.parse(donateurl));
             startActivity(intent);
             ct--;
             dialog[ct].dismiss();
             cursor.close();
             sqldb.close();
             finish();
        }
     });

      no.setOnClickListener(new OnClickListener()
      {
        public void onClick(View v)
        {
           ct--;
           dialog[ct].dismiss();
           cursor.close();
           sqldb.close();
           finish();
        }
      });
      dialog[ct].show();
      ct ++;
     }while(cursor.moveToNext());
   }

1 个答案:

答案 0 :(得分:0)

我认为不可能同时进行多个对话。

如果要显示一系列对话框,可以使用onclick侦听器。从一个对话框中打开以下对话框。 (dialog interface for the listeners) 如果你想阻止程序,那么用户必须点击对话框,设置对话框不可取消(setCancelable