2017-05-17 2 views
1

私は使用しますextends DialogFragmentどのようにDialogfragmentをAndroidでアンドロイドでクリックしないようにしますか?

私はダイアログを除いて、アンドロイドを無効にします。

私はsetCanceledOnTouchOutside(true)を試してみますが、動作しません。

と私の出典を確認してください。

public class QuestDialog extends DialogFragment { 
    private String mainMessage = ""; 
    private View.OnClickListener positiveListener = null; 
    private View.OnClickListener negativeListener = null; 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

    View view = inflater.inflate(R.layout.main_dialog, container, false); 

    TextView textView = (TextView) view.findViewById(R.id.main_msg); 
    textView.setText(mainMessage); 

    Button positiveBtn = (Button) view.findViewById(R.id.dialog_positive_btn); 
    Button negativeBtn = (Button) view.findViewById(R.id.dialog_negative_btn); 

    positiveBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      dismiss(); 
      if (positiveListener != null) { 
       positiveListener.onClick(view); 
      } 
     } 
    }); 
    negativeBtn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      dismiss(); 

      if (negativeListener != null) [ 
       negativeListener.onClick(view); 
      } 
     } 
    }); 
    return view; 
    } 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 

    Dialog dialog = super.onCreateDialog(savedInstanceState); 
    dialog.setCanceledOnTouchOutside(true); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

    dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
      WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE); 
    dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM | 
      WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

    dialog.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 
      | View.SYSTEM_UI_FLAG_LAYOUT_STABLE 
      | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 
      | View.SYSTEM_UI_FLAG_FULLSCREEN 
      | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY 
      | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION); 
    return dialog; 
} 
public void setMessage(final String msg) { 
    mainMessage = new String(msg); 
} 

public void setPositiveButton(View.OnClickListener listener) { 
    positiveListener = listener; 
} 

こちらです。

アンドロイドでdialogfragmentのクリックを無効にするにはどうすればよいですか?

ありがとうございました。

+0

(偽)dialog.setCancelableを追加私のために働きました。 –

+0

setCanceledOnTouchOutside(false);外部のタッチダイアログのキャンセルを無効にする – RameshJaga

+0

質問をより明確にお願いします。私たちが正しいアンサーを与えるのは簡単です。 – RameshJaga

答えて

1

ご希望の場合はsetCancelable(true)をご利用ください。

Dialog dialog = super.onCreateDialog(savedInstanceState); 
dialog.setCancelable(true); 
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
+0

私は 'dialog.setCancelable(false)'を試してみましたが、動作しません。 – chohyunwook

0

dialog.setCancelable(boolean)を使用してください。 ありがとう

+0

私は 'dialog.setCancelable(false)'を試しています。 – chohyunwook

+0

@chohyunwook試してみてくださいdialog.setCancelable(true) –

0

表示する前にDialogFragmentに.setCancelable(false)を設定します。 onCreateViewで

QuestDialog questDialog = new QuestDialog(); 
questDialog.setCancelable(false); 
questDialog.show(getSupportFragmentManager(),"Tag"); 
0

平野setCancelable(ダイアログなし)(偽)が

関連する問題