Paso por aquí mi main class y si podéis y no os importa le echáis un vistazo porque sigue sin funcionar (y si, se que es mucho y a saco pero no se me ocurre que mas hacer):
package com.example.kohario.newofersalud;
import android.app.DownloadManager;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import android.content.Context;
import android.content.SharedPreferences;
import java.lang.*;
import java.util.List;
public class OferSaludMain extends ActionBarActivity {
// Control de la pila (historial)
private boolean comienzo = true;
private int pila = 0;
private int posActual = 0;
static boolean conectado;
// Navigation drawer (men�) y lista para cargar en el mismo.
private DrawerLayout menuDrawer;
private ListView listaDrawer;
// Extras para el navigation drawer.
private ActionBarDrawerToggle drawerToggle;
// Adaptador de la lista.
/** Metodo inicializador de casi todo lo necesario para la actividad. **/
override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_activity_main);
if (savedInstanceState != null) {
this.pila = savedInstanceState.getInt("pila");
this.posActual = savedInstanceState.getInt("posActual");
this.comienzo = savedInstanceState.getBoolean("comienzo");
if(conectado==true){
this.conectado=savedInstanceState.getBoolean("conexion");
}
}
// tituloAction = tituloDrawer = getTitle();
menuDrawer = (DrawerLayout) findViewById(R.id.drawerLayout);
listaDrawer = (ListView) findViewById(R.id.menuIzquierdo);
// Pongo a cada elemento de la lista el listener necesario para hacerles
// click.
listaDrawer.setOnItemClickListener(new DrawerItemClickListener());
// Creo un adaptador de lista y le paso el contexto y mi lista
// personalizada.
// Llamo al m�todo que me llena la lista.
llenarLista();
// Toggle del drawer (abierto/cerrado)
drawerToggle = new ActionBarDrawerToggle(this, menuDrawer, R.string.drawer_abierto, R.string.drawer_cerrado ) {
// Estado del drawer: cerrado.
public void onDrawerClosed(View view) {
super.onDrawerClosed(view);
// getSupportActionBar().setTitle(tituloAction);
}
// Estado del drawer: abierto.
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
// getSupportActionBar().setTitle(tituloDrawer);
}
};
// Pongo el drawerToggle como listener de menuDrawer.
menuDrawer.setDrawerListener(drawerToggle);
getSupportActionBar().setDisplayHomeAsUpEnabled(tr ue);
if (savedInstanceState == null) {
elementoElegido(0);
comienzo = false;
} else {
elementoElegido(posActual);
}
}
override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("pila", this.pila);
outState.putInt("posActual", this.posActual);
outState.putBoolean("comienzo", this.comienzo);
outState.putBoolean("conexion",this.conectado);
}
public void openmenu(View v){
menuDrawer.openDrawer(listaDrawer);
}
/** M�todo que llena la lista de opciones. **/
public void llenarLista() {
AdaptadorDrawer adaptador = new AdaptadorDrawer(this);
// Creo un Array desde XML con los nombres de cada item.
String opciones[] = getResources().getStringArray(R.array.opcionesMenu );
// Empiezo a popular los items con sus respectivos nombres.
for (int i = 0; i < opciones.length; i++){
adaptador.aditem(opciones[i].toString());
}
listaDrawer.setAdapter(adaptador);
}
/** Evento que ocurre despu�s de que esta actividad sea creada. **/
override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
/*
* Sincroniza el estado abierto/cerrado del drawer despu�s de que
* onRestoreInstanceState haya tenido lugar.
*/
drawerToggle.syncState();
if(conectado==true){
TextView iniciar;
iniciar=(TextView)findViewById(R.id.xlog);
TextView desconec;
desconec=(TextView)findViewById(R.id.btncerrarsesi on);
iniciar.setVisibility(View.GONE);
desconec.setVisibility(View.VISIBLE);
SharedPreferences preferencias=getSharedPreferences("conexion",Context.MODE_PRIVATE);
SharedPreferences.Editor editor=preferencias.edit();
editor.putBoolean("conexion",conectado);
editor.commit();
}
else{
TextView iniciar;
iniciar=(TextView)findViewById(R.id.xlog);
TextView desconec;
desconec=(TextView)findViewById(R.id.btncerrarsesi on);
iniciar.setVisibility(View.VISIBLE);
desconec.setVisibility(View.GONE);
SharedPreferences preferencias=getSharedPreferences("conexion",Context.MODE_PRIVATE);
SharedPreferences.Editor editor=preferencias.edit();
editor.putBoolean("conexion",conectado);
editor.commit();
}
}
/** Evento de cambio de configuraci�n. **/
override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
drawerToggle.onConfigurationChanged(newConfig);
}
/** Men� de la barra de acci�n. **/
override
public boolean onCreateOptionsMenu(Menu menu) {
// Carga el men� si existe.
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_ofer_salud_main, menu);
return true;
}
/**
* Lo que sucede al pulsar los elementos de la barra de acci�n y una parte
* del navigation drawer (el abrir/cerrar).
**/
override
public boolean onOptionsItemSelected(MenuItem item) {
// Pasa el evento al drawerToggle de la ActionBar si est� presente,
// si devuelve verdadero es que se ha tocado el bot�n del
// navigationDrawer.
if (drawerToggle.onOptionsItemSelected(item)) {
return true;
}
// Otros objetos de la barra de acci�n...
return super.onOptionsItemSelected(item);
}
// Clase interna escuchadora.
private class DrawerItemClickListener implements
ListView.OnItemClickListener {
override
public void onItemClick(AdapterView padre, View vista, int posicion,
long id) {
if (pila != posicion) {
if (posicion != 5 && posicion != 8 && posicion != 12 && posicion != 13
&& posicion != 14 && posicion != 15) {
elementoElegido(posicion);// Llamada al m�todo que lanza las
// otras actividades de la app.
} else {
menuDrawer.closeDrawer(listaDrawer);// Cierra el men�
// drawer.
switch (posicion) {
case 5:
abrirPuntosDeVenta();
//Toast.makeText(getApplication().getApplicationCont ext(), "Puntos de venta", Toast.LENGTH_SHORT).show();
break;
case 8:
abrirBlog();
break;
case 12:
abrirLlamada();
break;
case 13:
abrirWeb();
break;
case 14:
abrirEmail();
break;
case 15:
abrirFormulariol();
break;
}
}
}
else
menuDrawer.closeDrawer(listaDrawer);// Cierra el drawer.
}
}
/** M�todo que cambia los fragmentos de contenido de la actividad. **/
private void elementoElegido(int posicion) {
/*
* Creo un nuevo fragmento y especifico que numero de elemento menu se
* va a mostrar en la pantalla.
*/
// Asigno la variable para saber que fragmento esta en lo mas alto de la
// backstack.
pila = posicion;
posActual = posicion;// Guardo la posicion para recuperla en un cambio
// de orientacion.
// Extraigo un array de XML para cambiar el titulo en funcion de la
// seccion.
String titulos[] = getResources().getStringArray(R.array.titulosMenu) ;
if ((posicion != 8 && posicion != 12 && posicion != 13
&& posicion != 14 && posicion != 15))
this.setTitle(titulos[posicion]);
// Cro un fragmento y establezco sus propiedades.
FragmentoContenido fragmento = new FragmentoContenido();
Bundle args = new Bundle();
args.putInt(FragmentoContenido.ARG_NUMERO_ELEMENTO , posicion);
fragmento.setArguments(args);
// Inserta el fragmneto reemplazando uno ya existente
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
// Pongo aniamciones personalizadas seg�n mis necesidades.
if (!comienzo)
ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left);
else
ft.setCustomAnimations(R.anim.abc_slide_in_top,
R.anim.slide_out_left);
// ft.setTransition(ft.TRANSIT_FRAGMENT_FADE);<-Animaci�n por defecto,
// m�s ligera.
ft.replace(R.id.contenedor, fragmento);
ft.commit();
// Reslta el objeto seleccionado, actualiza el t�tulo, y cierra el
// drawer.
listaDrawer.setItemChecked(posicion, true);
// setTitle("T�tulo X");<-Cambio de t�tulo despreciadao, de momento.
menuDrawer.closeDrawer(listaDrawer);
}
/********************* METODO DE NAVEGACION *********************************/
override
public void onBackPressed() {
/*
* Si el usuario no est� en la pantalla de inicio, le envia a ella. Si
* no, se entiende que la navegaci�n ha alcanzado su �ltimo punto y la
* app se cierra.
*/
if (pila != 0) {
elementoElegido(0);
String titulos[] = getResources().getStringArray(
R.array.titulosMenu);
this.setTitle(titulos[0]);
} else
finish();
}
/********************* M�TODOS PRIMERA PLANA ******************************/
public void filtrarCentros(View vista) {
Intent i = new Intent(getApplicationContext(), FiltroCentros.class);
startActivity(i);
}
public void filtrarEspecialistas(View vista) {
Intent i = new Intent(getApplicationContext(),
FiltroEspecialistas.class);
startActivity(i);
}
/********************* M�TODOS PRIMERA PLANA ******************************/
/********************* M�TODOS CONTACTO ******************************/
public void login(View view) {
Intent i = new Intent(this, layout_login.class );
startActivity(i);
}
public void abrirPuntosDeVenta(){
Intent i = new Intent(this, MapaOfs.class);
i.putExtra("origen", "puntosDeVenta");
startActivity(i);
}
public void abrirBlog() {
String url;
Intent i;
// Al uri se le pasa la direcci�n url del blog.
url = "http://www.ofersalud.es/blog/";
i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(Intent.createChooser(i, "Abrir página web con:"));
}
public void abrirLlamada() {
Intent i;
// Al uri se le pasa el tel�fono de Ofersalud.
i = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:963286428"));
startActivity(i);
}
public void abrirWeb() {
String url;
Intent i;
// Al uri se le pasa la direcci�n de la web de Ofersalud.
url = "http://www.ofersalud.es/";
i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(Intent.createChooser(i, "Abrir página web con:"));
}
public void abrirEmail() {
final Intent intentEmail = new Intent(
android.content.Intent.ACTION_SEND);
// Tipo de texto.
intentEmail.setType("plain/text");
// Destinatario.
intentEmail.putExtra(android.content.Intent.EXTRA_ EMAIL,
new String[] { "
[email protected]" });
// Se le muestra al usuario una lista con sus apps capaces de
// enviar un correo.
startActivity(Intent.createChooser(intentEmail, "Enviar e-mail con:"));
}
public void abrirFormulariol() {
Intent i = new Intent(this, VistaForm.class);
startActivity(i);
}
/******************************* FIN ****************************************/
/********************* M�TODOS REDES SOCIALES ******************************/
public void irFacebook(View v) {
// v.setBackgroundResource(R.drawable.forma_redondead a);
startActivity(abrirFacebookApp(this));
}
public static Intent abrirFacebookApp(Context context) {
/*
* Este m�todo comprueba si la APP de facebook est� instalada en el
* dispositivio. si lo est�, entonces abre la p�gina de Ofersalud en la
* APP de Facebook, si no, la abre con uno de los navegadores elegido
* por el usuaruio.
*/
try {
context.getPackageManager()
.getPackageInfo("com.facebook.katana", 0);
return new Intent(Intent.ACTION_VIEW,
Uri.parse("fb://profile/170200423092462"));
} catch (Exception e) {
return new Intent(Intent.ACTION_VIEW,
Uri.parse("https://www.facebook.com/170200423092462"));
}
}
/****************************** FIN ****************************/
/************************* M�TODOS DESCARGAS ******************************/
/**
* El contexto se le pasa para averiguar la versi�n del tel�fono y la info
* de download manager. true si la descarga est� disponible.
*/
public static boolean descargaDisponible(Context context) {
try {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.GINGERBREAD) {
return false;
}
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setClassName("com.android.providers.downloads.ui",
"com.android.providers.downloads.ui.DownloadList");
List<ResolveInfo> list = context.getPackageManager()
.queryIntentActivities(intent,
PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
} catch (Exception e) {
return false;
}
}
public void descargar(View v) {
if (descargaDisponible(getApplicationContext())) {
String url = "";
Toast.makeText(this, "Su descarga comenzará en breve.",
Toast.LENGTH_SHORT).show();
switch (v.getId()) {
case R.id.dd_valencia:
url = "https://ofersalud.es/pdf/valencia.php";
break;
case R.id.dd_alicante:
url = "https://ofersalud.es/pdf/alicante.php";
break;
case R.id.dd_baleares:
url = "https://ofersalud.es/pdf/baleares.php";
break;
case R.id.dd_madrid:
url = "https://ofersalud.es/pdf/madrid.php";
break;
case R.id.dd_murcia:
url = "https://ofersalud.es/pdf/murcia.php";
break;
case R.id.dd_castellon:
url = "https://ofersalud.es/pdf/castellon.php.pdf";
break;
case R.id.dd_cantabria:
url = "https://ofersalud.es/pdf/cantabria.php.pdf";
break;
}
DownloadManager.Request request = new DownloadManager.Request(
Uri.parse(url));
request.setDescription("Libro del cuadro médico de Ofersalud");
request.setTitle("Libro cuadro médico");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager. Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
request.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS, v.getTag().toString()
+ "_cuadro_médico.pdf");
// Obtener servicio de descarga y poner archivo a la cola.
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
}
}
static void conectando(boolean c){
conectado=c;
}
public void desconectar(View v){
conectado=false;
SharedPreferences preferencias=getSharedPreferences("datos",Context.MODE_PRIVATE);
SharedPreferences.Editor editor=preferencias.edit();
editor.putBoolean("conexion",conectado);
editor.commit();
finish();
}
//metodo que abre el boton tarifas si has iniciado sesion y que te redirecciona si no
public void mostrartarifas(View view) {
if(conectado==false){
noeresusuario(view);
}
else{
eresusuario(view);
}
}
public void eresusuario(View view) {
Intent i = new Intent(this, youarenotuser.class );
startActivity(i);
}
public void noeresusuario(View view) {
Intent i = new Intent(this, youarenotuser.class );
startActivity(i);
}
}
/******************************* FIN ****************************************/