2017-07-05 14 views
0

私は自分のアクティビティのボタンをクリックしてカスタムダイアログを作成しています。そこダイアログ内のボタンがあり、私はこのようにそれを設定している:onClickのダイアログの参照を取得

Button buttonTakePicture = (Button)dialog.findViewById(R.id.buttonTakePicture); 
buttonTakePicture.setOnClickListener(this); 

My活動onClickListenerを実施している、と上書きonClick方法は次のようになります。私は、取得するために苦労しています

@Override 
    public void onClick(View view) { 
     switch (view.getId()) { 
      case R.id.buttonTakePicture: 
       Dialog dialog = //Get the dialog somehow from view; 
       if (dialog != null) { 
        dialog.dismiss(); 
       } 
       takePicture(); 
       break; 
     } 
    } 

ダイアログリファレンスはこちら。私は(Dialog)view.getParent()と(Dialog)view.getParent.getParent()を試しましたが、ダイアログではありません。

唯一の方法でない限り、自分のアクティビティにダイアログフィールドを表示したくありません。

ご協力いただければ幸いです。前もって感謝します。

+0

はあなたのダイアログクラスにインタフェースを記述する必要があり、それを行うにはあなたの活動にそのインターフェースを実装してください。 – sumit

+0

@Sac以下の解決策を確認して、私に連絡してください。 –

+0

@sumitは基本的に私たちのボタンであるビューを使ってonClick自体のダイアログの参照を取得することが可能です。 – Sac

答えて

0

私は、このためのソリューションを持って、

Button buttonTakePicture = (Button)dialog.findViewById(R.id.buttonTakePicture); 
     buttonTakePicture.setTag(dialog); 
     buttonTakePicture.setOnClickListener(this); 

と、このようなダイアログを取得し、正しい方法ではありません

@Override 
    public void onClick(View view) { 
     switch (view.getId()) { 
      case R.id.buttonTakePicture: 
       Dialog dialog = (Dialog) view.getTag(); 
       if (dialog != null) { 
        view.setTag(null); 
        dialog.dismiss(); 
       } 
       takePicture(); 
       break; 
     } 
    } 
+0

それは働いた。ありがとう。 – Sac

関連する問題