2012-03-19 58 views
0

我正在創建一個對話框,並使用(this)不工作。到目前爲止,它只是一個調用對話框的按鈕,但現在被調用的對話框中的按鈕需要調用另一個對話框。 Dialog dialogdelcon是有問題的。我需要哪種上下文?

下面是代碼:

case R.id.delappt: 
     //rmvall(); 

     final Dialog dialogdelsel = new Dialog(this); 
      dialogdelsel.setContentView(R.layout.delsel); 
      dialogdelsel.setTitle("What would you like to do?"); 
      dialogdelsel.setCancelable(true); 

      Button btndelsel = (Button) dialogdelsel.findViewById(R.id.btndelsel); 
      btndelsel.setOnClickListener(new OnClickListener() { 


       @Override 
       public void onClick(View v) { 
        // delete selected code here. 

       } 
      }); 

     Button btndelall = (Button) dialogdelsel.findViewById(R.id.btndelall); 
      btndelall.setOnClickListener(new OnClickListener() { 


       @Override 
       public void onClick(View v) { 
        // delete all code here. 
        final Dialog dialogdelcon = new Dialog(); 
        dialogdelcon.setContentView(R.layout.delcon); 
        dialogdelcon.setTitle("Deletion Confirmation"); 
        dialogdelcon.setCancelable(true); 

        Button buttoncnclok = (Button) dialogdelcon.findViewById(R.id.btndelcon); 
        buttoncnclok.setOnClickListener(new OnClickListener() { 

        // on click for cancel button 
         @Override 
         public void onClick(View v) { 
          dialogdelcon.dismiss(); 
         } 
        }); 

       dialogdelcon.show(); 
       } 
      }); 


     dialogdelsel.show(); 
     break; 
+0

它在哪裏失敗?我猜你需要活動上下文myActivityName.this – bbedward 2012-03-19 19:34:47

+0

我的活動名稱是什麼?我還是新來的android。 – nexus490 2012-03-19 19:38:35

回答

1

getApplicationContext()或使用YourActictyName.this因爲this指按鈕click listner,而不是你的類Object

0

如果這個代碼是在onCreate()方法,或similiar,加getApplicationContext()代替this,你應該沒問題。這是因爲Button-context中的this將引用按鈕環境。

0

爲了改善兩個對話框之間的隔離,最好從onClick處理程序調用showDialog(R.id.delapptcon)。然後在您的活動的onCreateDialog中加載新的對話框。通過這種方式,您可以創建更多可重用的對話框並避免您現在具有的範圍問題。