lunes, 17 de agosto de 2015

Clase 3ª del curso SQL Server 2012

Os dejo la 3ª clase del curso de SQL Server 2012.
En breve tendremos la 4ª entrega!
Espero que os sirva y os ayude.




Saludos

viernes, 7 de agosto de 2015

Llamando a un AlertDialog fuera de una activity

Esta mañana me he tenido que pelear con un AlertDialog que podía hacer dos opciones, por un lado mandar el documento adjunto por mail o por otro lado abrir el pdf. El problema era que llamaba al AlertDialog desde fuera de la Activity por lo que he tenido que usar
 
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
 
y añadir un permiso en el AndroidManifest.xml

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
 
El método completo que he usado es el siguiente:





AlertDialog alertDialog = new AlertDialog.Builder(context).create();
alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);
alertDialog.setTitle("Documento correctamente generado");
alertDialog.setMessage("¿Que desea hacer con el documento?");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL,"Mandar por email" ,
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                Log.i("Print.java", "Button email");
                Uri path = Uri.fromFile(pdfFile);
                Intent intent = new Intent(Intent.ACTION_SEND);
                intent.setType("message/rfc822");
                Uri uri = Uri.fromFile(pdfFile);
                intent.putExtra(Intent.EXTRA_SUBJECT, "Texto");
                intent.putExtra(Intent.EXTRA_STREAM, uri);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                context.startActivity(intent);
            }
        });
alertDialog.setButton(AlertDialog.BUTTON_POSITIVE, "Imprimir",
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                Log.i("Print.java", "Button imprimir");
                Uri path = Uri.fromFile(pdfFile);
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(path, "application/pdf");
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                try {
                    context.startActivity(intent);
                } catch (ActivityNotFoundException e) {
                    Toast.makeText(context,"No Application Available to View PDF", Toast.LENGTH_SHORT).show();
                }
            }
        });
alertDialog.show();