Mi aplicación entre otras funciones, hace una consulta a base de datos a través de php, recojo el resultado en un array en JSON y muestro los resultados en un listview. El problema surge cuando hago clic en un elemento del listview quiero que se muestre un dialogo, cuando le doy clic me sale lo de forzar cierre.
Dejo la parte del código que me está dando problemas.
Código Java:
Ver original
public class SacarLibro extends Activity{ .... Context contexto; Context contexto2; ListView list; InputStream is; ArrayList<Libros> listaLibros = new ArrayList<Libros>(); AlertDialog.Builder dialogo1; this.contexto2 = contexto2; } this.contexto = contexto; } @Override protected void onPreExecute() { } @Override .... } @Override protected void onPostExecute(ArrayAdapter<Libros> result) { list.setAdapter(result); mostrarDialogo(); //Log.e("Extra", user); } protected void mostrarDialogo() { // TODO Auto-generated method stub list.setOnItemLongClickListener(new OnItemLongClickListener(){ @Override int arg2, long arg3) { // TODO Auto-generated method stub dialogo1 = new AlertDialog.Builder(contexto2); dialogo1.setTitle("Importante"); dialogo1.setMessage("¿ Quieres sacar este libro ?"); dialogo1.setCancelable(false); dialogo1.setPositiveButton("Confirmar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogo1, int id) { aceptar(); } }); dialogo1.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogo1, int id) { cancelar(); } }); dialogo1.show(); return false; } }); } }
Según la documentación oficial en "dialogo1 = new AlertDialog.Builder(contexto2);", hay que pasar el contexto de la aplicación mediante getApplicationContext() pero a mi no me deja, eclipse me da error, también he leido en otras páginas pasar el contexto con this, con getActivity(), con NombreDeMiActividad.this, y más maneras, pero en todas eclipse me da error excepto como lo tengo yo.
El error que me da el log es: Unable to add window token null is not for an application
Espero que me puedan ayudar puesto que llevo ya varios días dando vueltas y no consigo nada.
Saludos.