0

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());
   }
4

1 に答える 1

0

同時に複数の対話は不可能だと思います。

一連のダイアログを表示したい場合は、onclick リスナーを使用できます。1 つのダイアログから、次のダイアログを開きます。(リスナーのダイアログ インターフェイス) プログラムをブロックする場合は、ユーザーがダイアログをクリックする必要があるため、ダイアログをキャンセルできないように設定します ( setCancelable ) 。

于 2013-03-02T08:19:19.867 に答える