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

DialogDialogのあなたのビューを初期化します。

をこの置き換え:私はあなたがレイアウトを膨らませるとビューを取得し、設定すべきだと思う

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

最初に、cusomDialogオブジェクトを渡す必要があります。

第2に、ダイアログメソッドを作成して間違っています。

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 Button close = (Button) findViewById(R.id.close); 

をあなたのカスタムダイアログで表示します。

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); 

Good Luck !!

関連する問題