logo
Bienvenido visitante. Para activar todas las funcionalidades, por favor Iniciar sesión o Registrarse.

Aviso

Icon
Error

Opciones
Ir a la última publicación
Doradiolly  
#1 Publicado : lunes, 7 de octubre de 2013 0:05:02(UTC)
Doradiolly

Posición: Member

Grupos: Registered
Registrado: 06/10/2013(UTC)
Mensajes: 28

Agradecimientos: 1 veces
Fue agradecido: 3 vez/veces in 2 publicación(es).
Hola buenas, estoy haciendo mi primera aplicación y la cual tiene muchas ventanas, todas ellas con un color definido de background. La cuestión es la siguiente. Hice una base común para cada ventana o activity, pero claro típico error de novato. Ahora tengo más de 30 activity’s y no es plan de si algún día quiero cambiar el fondo o background tener que modificar todas las activity’s. Así que se me ocurrió hacer una prueba con una más pequeña y diseñada por módulos e ir importándolos con la típica directiva:
Código:
<include layout="@layout/nombre_archivo.xml" />
que se importa bien pero cuando en mi archivo “activity_main.xml” pongo más de un <include> por ejemplo:

Código:
<include layout="@layout/fondo" />
<include layout="@layout/preguntas" />


y uno de ellos es un radiogroup y el otro un simple background es como si se solaparan y al final solo se ve el background o solo el radio group pero no consigo que se incluyan los dos.

Alguien me podría explicar cómo incluir un fondo o background para todas mis activity’s de manera modular. Muchas gracias por adelantado.
Dejo aquí el código de los archivos:

“activity_main.xml”

Código:
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scrollView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        >
            
	<include
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        layout="@layout/preguntas" />
                    
	<include
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        layout="@layout/fondo" />
                    
</LinearLayout>


“fondo.xml”


Código:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="#C3E0FB">

</LinearLayout>


“preguntas.xml”


Código:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
     >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/radio_pregunta_1"
        android:textSize="16sp"
        android:textAppearance="?android:attr/textAppearanceLarge" />
    
    <RadioGroup
        android:id="@+id/radioRespuesta"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <RadioButton
            android:id="@+id/radio1A"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio_respuestas_A"
            android:checked="true" 
              />

        <RadioButton
            android:id="@+id/radio1B"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio_respuestas_B" />
        
        <RadioButton
            android:id="@+id/radio1C"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio_respuestas_C" />
        
        <RadioButton
            android:id="@+id/radio1D"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/radio_respuestas_D" />

    </RadioGroup>

    <Button
        android:id="@+id/btnRespuesta"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/btnRespuesta" />
    

</LinearLayout>




P.D: He probado con varias configuraciones y formas pero no hay manera. O aparece el fondo o el radio group pero no hay manera de que aparezcan los dos. Un millón de gracias de antemano.

Editado por un usuario lunes, 7 de octubre de 2013 0:07:15(UTC)  | Razón: No especificada

admin  
#2 Publicado : lunes, 7 de octubre de 2013 21:27:04(UTC)
admin

Posición: Administration

Grupos: Administrators
Registrado: 07/10/2010(UTC)
Mensajes: 436
Hombre
Ubicación: España

Agradecimientos: 38 veces
Fue agradecido: 49 vez/veces in 48 publicación(es).
Hola!

Puedes controlar el fondo de la pantalla desde el codigo, es decir desde donde llames la pantalla cambiar el fondo del Layout ¿eso te vale?

Un saludo!!

P.D. Te puedo poner un codigo de ejemplo si no lo tienes claro! ;P
Un saludo,

Curso Completo GRATIS paso a paso de como programar Android
http://www.aprendeandroid.com
Doradiolly  
#3 Publicado : lunes, 7 de octubre de 2013 21:37:15(UTC)
Doradiolly

Posición: Member

Grupos: Registered
Registrado: 06/10/2013(UTC)
Mensajes: 28

Agradecimientos: 1 veces
Fue agradecido: 3 vez/veces in 2 publicación(es).
admin escribió:
Hola!

Puedes controlar el fondo de la pantalla desde el codigo, es decir desde donde llames la pantalla cambiar el fondo del Layout ¿eso te vale?

Un saludo!!

P.D. Te puedo poner un codigo de ejemplo si no lo tienes claro! ;P


Ponme el código sino es mucha molestia. Gracias por responder.
admin  
#4 Publicado : lunes, 7 de octubre de 2013 21:51:45(UTC)
admin

Posición: Administration

Grupos: Administrators
Registrado: 07/10/2010(UTC)
Mensajes: 436
Hombre
Ubicación: España

Agradecimientos: 38 veces
Fue agradecido: 49 vez/veces in 48 publicación(es).
Es sencillo!

localiza el layout principal, el que utilices para poner el fondo:

Código:


LinearLayout fondo = (LinearLayout) findViewById(R.id.layout_root);



y luego donde te interés del programa le cambias la propiedad BackGround:

Código:

fondo.setBackgroundColor(Color.parseColor("#65BF29"));


cuentanos que tal te fue!
Un saludo,

Curso Completo GRATIS paso a paso de como programar Android
http://www.aprendeandroid.com
Doradiolly  
#5 Publicado : lunes, 7 de octubre de 2013 23:13:53(UTC)
Doradiolly

Posición: Member

Grupos: Registered
Registrado: 06/10/2013(UTC)
Mensajes: 28

Agradecimientos: 1 veces
Fue agradecido: 3 vez/veces in 2 publicación(es).
Pues sinceramente no se muy bien como hacerlo. Aún ando un poco verde, en programación con respecto a Android.
Como te decía al principio de la conversación, lo que quiero es cambiar el codigo del fondo por ejemplo de #FFFFFF a #224466 y que se cambie el fondo de todas las activity's. No tener que ir una por una.

El código que me diste lo he incluido en mi MainActivity.java que es el siguiente, pero me da error y creo que no conseguiría el resultado deseado:

Código:
package com.example.radio_boton;



import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
 
public class MainActivity extends Activity {
	private RadioGroup radioRespuestaGrupo;
	private RadioButton radioRespuestaBoton;
	private Button btnRespuesta;

	LinearLayout fondo1 = (LinearLayout) findViewById(R.id.fondoapp); // Lineas incluidas
	fondo.setBackgroundColor(Color.parseColor("#65BF29"));            //   ...   ...
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        addListenerOnButton();
    }

    private void addListenerOnButton() {
    	radioRespuestaGrupo = (RadioGroup) findViewById(R.id.radioRespuesta);
    	btnRespuesta = (Button) findViewById(R.id.btnRespuesta);

    	btnRespuesta.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View v) {

				// get selected radio button from radioGroup
				int selectedId = radioRespuestaGrupo.getCheckedRadioButtonId();

				// encuentra radiobutton por el id devuelto
				radioRespuestaBoton = (RadioButton) findViewById(selectedId);

				Toast.makeText(MainActivity.this,
						radioRespuestaBoton.getText(), Toast.LENGTH_SHORT).show();

			}

		});

	}
}
 


Gracias por tu esfuerzo ;-)
admin  
#6 Publicado : martes, 8 de octubre de 2013 22:16:57(UTC)
admin

Posición: Administration

Grupos: Administrators
Registrado: 07/10/2010(UTC)
Mensajes: 436
Hombre
Ubicación: España

Agradecimientos: 38 veces
Fue agradecido: 49 vez/veces in 48 publicación(es).
Hola!

no te preocupes, todos hemos pasado por ahi!!

tienes un error:

Código:

LinearLayout fondo1 = (LinearLayout) findViewById(R.id.fondoapp); // Lineas incluidas
fondo.setBackgroundColor(Color.parseColor("#65BF29"));  


fijate que defines la variable como fondo1, y luego la usas como fondo.

Animo, yo creo que esto si te vale!!
Un saludo,

Curso Completo GRATIS paso a paso de como programar Android
http://www.aprendeandroid.com
Doradiolly  
#7 Publicado : martes, 8 de octubre de 2013 23:28:51(UTC)
Doradiolly

Posición: Member

Grupos: Registered
Registrado: 06/10/2013(UTC)
Mensajes: 28

Agradecimientos: 1 veces
Fue agradecido: 3 vez/veces in 2 publicación(es).
Un millón de gracias compañero. Simplifiqué al máximo el proyecto y me funcionó. Borré el archivo fondo.xml y lo hice con la ID de acitivity_main.xml

Código:

package com.example.radio_boton;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.widget.LinearLayout;

 
public class MainActivity extends Activity {
	LinearLayout fondo; 
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        fondo= (LinearLayout) findViewById(R.id.appxml);
        
        fondo.setBackgroundColor(Color.parseColor("#223344"));
  
    }

}

Supongo que si quisiera cambiar el fondo a varios archivos solo habría que crear mas variables y hacer algo como esto, ¿no?.
Código:

package com.example.radio_boton;

import android.os.Bundle;
import android.app.Activity;
import android.graphics.Color;
import android.widget.LinearLayout;

 
public class MainActivity extends Activity {
	LinearLayout fondo; 
	LinearLayout fondo1;
	LinearLayout fondo2;//etc
	
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        fondo= (LinearLayout) findViewById(R.id.appxml);
        fondo1= (LinearLayout) findViewById(R.id.....);//ID de layout que se quiere cambiar
        fondo2= (LinearLayout) findViewById(R.id.....);//ID de layout que se quiere cambiar

        
        fondo.setBackgroundColor(Color.parseColor("#223344"));
        fondo1.setBackgroundColor(Color.parseColor("#223344"));
        fondo2.setBackgroundColor(Color.parseColor("#223344"));
  
    }

} 


Gracias por tu tiempo y paciencia ;-)
admin  
#8 Publicado : domingo, 13 de octubre de 2013 23:03:20(UTC)
admin

Posición: Administration

Grupos: Administrators
Registrado: 07/10/2010(UTC)
Mensajes: 436
Hombre
Ubicación: España

Agradecimientos: 38 veces
Fue agradecido: 49 vez/veces in 48 publicación(es).
Me alegro de que te funcionara!!

Si descubres algo interesante cuelgalo por aqui, asi ayudaras a otros!
Un saludo,

Curso Completo GRATIS paso a paso de como programar Android
http://www.aprendeandroid.com
Usuarios navegando este tema
Guest (2)
Salto de foro  
No puedes iniciar nuevos temas en este foro.
No puedes responder a temas en este foro.
No puedes eliminar sus temas en este foro.
No puedes editar sus temas en este foro.
No puedes crear encuestas en este foro.
No puedes votar las encuestas en este foro.