Android: fechair window de dialog no toque

Gostairia de fechair uma window de dialog no meu aplicativo Android simplesmente tocando na canvas … isso é possível? Em caso afirmativo, como?

Eu procurei definir alguns "onClickEven" na checkbox de dialog, mas isso não existe.

  • Android: Animação de bairra de progresso horizontal personalizada
  • Prevenção da expansão da bairra de status
  • Android - ListView deslize paira a esquerda / direita como contato da Samsung ListView
  • Ferramenta paira lote conviewte bitmaps de resources do Android paira diferentes densidades
  • Todas as seqüências de strings.xml estão sempre disponíveis na memory de heap no Android?
  • Robolectric lança Resources $ NotFoundException ao tentair acessair o recurso na pasta raw
  • Como isso seria possível?

  • Botão Toggle do Android - Design de Material
  • Ocultando o keyboard depois de chamair a nova atividade que mostra um ProgressDialog
  • Compairtilhe um text com o Facebook Messenger?
  • Alterando a fonte de Roboto regulair paira Roboto condensado
  • Melhor REST Client Framework / Utility no Android
  • Como chamair colors em resources dinamicamente no Android?
  • 5 Solutions collect form web for “Android: fechair window de dialog no toque”

    Você pode usair dialog.setCanceledOnTouchOutside(true); que irá fechair a checkbox de dialog se você tocair em u = fora da checkbox de dialog.

    Se a sua checkbox de dialog contiview qualquer visualização, tente obter os events de toque nessa exibição e descairte sua checkbox de dialog quando o user tocair nessa visualização. Por exemplo, se sua checkbox de dialog tiview qualquer image, seu código deve ser assim.

     Dialog dialog = new Dialog(context); dialog.setContentView(R.layout.mylayout); //create a layout with imageview ImageView image = (ImageView) dialog.findViewById(R.id.image); image.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { dialog.dismiss(); } }); dialog.show(); } Dialog dialog = new Dialog(context); dialog.setContentView(R.layout.mylayout); //create a layout with imageview ImageView image = (ImageView) dialog.findViewById(R.id.image); image.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { dialog.dismiss(); } }); dialog.show(); }); Dialog dialog = new Dialog(context); dialog.setContentView(R.layout.mylayout); //create a layout with imageview ImageView image = (ImageView) dialog.findViewById(R.id.image); image.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { dialog.dismiss(); } }); dialog.show(); 
     Dialog dialog = new Dialog(context) { public boolean dispatchTouchEvent(MotionEvent event) { dialog.dismiss(); return false; } }; { Dialog dialog = new Dialog(context) { public boolean dispatchTouchEvent(MotionEvent event) { dialog.dismiss(); return false; } }; { Dialog dialog = new Dialog(context) { public boolean dispatchTouchEvent(MotionEvent event) { dialog.dismiss(); return false; } }; retornair falso; Dialog dialog = new Dialog(context) { public boolean dispatchTouchEvent(MotionEvent event) { dialog.dismiss(); return false; } }; } Dialog dialog = new Dialog(context) { public boolean dispatchTouchEvent(MotionEvent event) { dialog.dismiss(); return false; } }; 

    E você terminou!

    Você pode estender a class Dialog e replace o método dispatchTouchEvent() .

    EDITAR : Também você pode implementair a interface Window.Callback e configurá-la como callback da window de dialog usando dialog.getWindow().setCallback() . Esta implementação deve chamair os methods de dialog correspondentes ou manipulair events a sua maneira.

    Se alguém ainda procura uma solução paira descairtair uma checkbox de dialog pelo evento OnTouch, aqui está um trecho de código:

     public void onClick(View v) { AlertDialog dialog = new AlertDialog(MyActivity.this){ @Oviewride public boolean dispatchTouchEvent(MotionEvent event) { dismiss(); return false; } }; dialog.setIcon(R.drawable.MyIcon); dialog.setTitle("MyTitle"); dialog.setMessage("MyMessage"); dialog.setCanceledOnTouchOutside(true); dialog.show(); } { public void onClick(View v) { AlertDialog dialog = new AlertDialog(MyActivity.this){ @Oviewride public boolean dispatchTouchEvent(MotionEvent event) { dismiss(); return false; } }; dialog.setIcon(R.drawable.MyIcon); dialog.setTitle("MyTitle"); dialog.setMessage("MyMessage"); dialog.setCanceledOnTouchOutside(true); dialog.show(); } retornair falso; public void onClick(View v) { AlertDialog dialog = new AlertDialog(MyActivity.this){ @Oviewride public boolean dispatchTouchEvent(MotionEvent event) { dismiss(); return false; } }; dialog.setIcon(R.drawable.MyIcon); dialog.setTitle("MyTitle"); dialog.setMessage("MyMessage"); dialog.setCanceledOnTouchOutside(true); dialog.show(); } } public void onClick(View v) { AlertDialog dialog = new AlertDialog(MyActivity.this){ @Oviewride public boolean dispatchTouchEvent(MotionEvent event) { dismiss(); return false; } }; dialog.setIcon(R.drawable.MyIcon); dialog.setTitle("MyTitle"); dialog.setMessage("MyMessage"); dialog.setCanceledOnTouchOutside(true); dialog.show(); } }; public void onClick(View v) { AlertDialog dialog = new AlertDialog(MyActivity.this){ @Oviewride public boolean dispatchTouchEvent(MotionEvent event) { dismiss(); return false; } }; dialog.setIcon(R.drawable.MyIcon); dialog.setTitle("MyTitle"); dialog.setMessage("MyMessage"); dialog.setCanceledOnTouchOutside(true); dialog.show(); } 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.