2012-03-20 41 views
2

我知道,類似的問題已經被問到,我已經瀏覽了我能找到的所有東西,但是我沒有找到任何對此問題的答案。如何在沒有AlertDialog的情況下在自定義對話框中實現取消按鈕?

下面的代碼:

protected Dialog onCreateDialog(int id) 
    { 
     Dialog dialog = new Dialog(this); 
     switch(id) 
     { 
      case R.layout.database_feed: 
       dialog.setContentView(R.layout.database_feed); 
       ((Button) dialog.findViewById(R.id.discard_button)).setOnClickListener(
        new View.OnClickListener() 
        { 
         //@Override 
         public void onClick(View v) 
         { 
          //dialog.cancel(); 
         } 
        } 
       ); 
       break; 
     } 
     return dialog; 
    } 

我只是想關閉該對話框上R.layout.database_feed按鈕點擊。但是我沒有訪問onClick方法中的對話框。我真的很困惑。

我不想使用AlertDialog或DialogBu​​ilder,因爲Dialog中還有其他東西難以在AlertDialog中實現。 此外,我已經知道爲Dialog製作單獨Activity的解決方案 - 但實際上我想知道它是如何工作的,我在這裏嘗試的方式。 此外,我已經嘗試使用DialogInterface.OnClickListener(),但我不能在setOnClickListener(...) - Method中使用它。

只是取消對話不能那麼難...但我不明白。

任何提示/幫助表示讚賞!

THX

回答

4

變化

Dialog dialog = new Dialog(this); 

final Dialog dialog = new Dialog(this); 

然後你就可以在你的onClick()方法來訪問對話框。

+0

完美,就是這樣。我正在尋找那幾個小時。謝謝! – Michi 2012-03-20 16:21:06

+2

額外提示:在eclipse中,當需要從匿名類中訪問它時聲明變量final是默認的自動更正操作。 – njzk2 2012-03-20 16:34:01

2

將「對話框」存儲爲類變量,或者在方法中進行最終確定。

相關問題