0

工作自定義對話框我有一點奇怪的情況 - 我有一箇中時,從點擊活動按鈕時打開一個自定義對話框。自定義對話框包含一個關閉按鈕,單擊時關閉對話框並將用戶返回到活動。當我按照原樣運行代碼(如下所示)時,不是啓動自定義對話框,而是進入主要活動(我認爲要麼重新打開應用程序,要麼以某種方式爲主要活動創建虛構的意圖)。但是,當我刪除/註釋關閉按鈕的代碼 - 突出顯示爲// ===此代碼時,一切正常(自定義對話框打開),但關閉按鈕不起作用。我不知道我錯過了什麼。不能與「setOnClickListener」的Android工作室

// Global variable 
    Button openDialog; 

    // ====== 
    openDialog = (Button) findViewById(R.id.opendialog); 
    openDialog.setOnClickListener(new Button.OnClickListener() { 
     public void onClick(View v) { 

      final Dialog cusomDialog = new Dialog(sellActivity.this); 
      cusomDialog.setContentView(R.layout.customdialog); 


      // === This code 
      final Button close = (Button) findViewById(R.id.close); 
      close.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View v) { 
         cusomDialog.dismiss(); 

        } 
       }); 
      // === This code 

      cusomDialog.show(); 


     } 
    }); 

有人請澄清一下,因爲我真的很困惑。

+0

爲什麼downvote,我做錯了什麼? – SumOne

+0

檢查答案 – W4R10CK

+0

你也可以點擊此鏈接https://www.mkyong.com/android/android-custom-dialog-example/ –

回答

2

初始化您的Dialog查看裏面Dialog

替換此:

final Button close = (Button) findViewById(R.id.close); 

有了這個:

final Button close = (Button) cusomDialog.findViewById(R.id.close); 
3

起初,你應該通過cusomDialog視圖對象。

其次,對話框創建和調用的方法是錯誤的。

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

       } 
      }); 

同樣的問題

openDialog = (Button)cusomDialog.findViewById(R.id.opendialog); //Rectified 

你應該更多的信息,請閱讀Custom Dialog

0

我想你應該膨脹的佈局和獲取視圖和設置在自定義對話框中查看。

final Dialog cusomDialog = new Dialog(sellActivity.this); 
View view = LayoutInflater.fromContext(sellActivity.this).inflate(R.layout.customdialog,false); 
cusomDialog.setContentView(view); 
Button close = (Button) view.findViewById(R.id.close); 

祝您好運!