PDA

Ver la Versión Completa : [ CONSULTA ] Cambiar tema desde menu


Devl1
14/04/15, 16:20:02
Buenas! estoy haciendo una app y necesito cambiar el tema de la aplicación desde una de las opciones desde menú, únicamente quiero cambiar el background pero la app se me cierra y es imposible.

El código .java es el siguiente:
public class MainActivity extends Activity {

static int idTema=R.style.AppBaseTheme; //Tema por defecto

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setTheme(idTema);

override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
//MENUS
override
public boolean onOptionsItemSelected(MenuItem item)
{

switch (item.getItemId())
{

case R.id.menu_verano:
idTema=R.style.TemaVerano;
MainActivity.this.finish();
startActivity(new Intent(MainActivity.this, MainActivity.this.getClass()));
return true;

default:
return super.onOptionsItemSelected(item);
}
}

y el codigo del theme.xml es el siguiente:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">

<style name="AppTheme" parent="@style/_AppTheme"/>

<style name="_AppTheme" parent="android:Theme.Light">

</style>

<style name="TemaVerano" parent="AppBaseTheme">

<item name="android:background">@drawable/fverano</item>

</style>

</resources>


Si alguien ve algo mal o puede ayudarme lo agradecería.

mocelet
14/04/15, 20:09:36
Si solo quieres cambiar el fondo no hay que destruir la actividad, volverla a crear, etc.... basta con llamar al setBackground de la vista que quieras, o de la root view si quieres que ocupe toda la ventana. Con getRootView en cualquier vista obtienes su referencia.