2011-02-23 12 views
9

Estoy tratando de cambiar programáticamente el color de diseño pero de un diseño relativo (intenté el diseño lineal pero no cambié), pero no puedo cambiarlo.Programativamente cambiar el color de diseño de diseño

También al intentar depurar la aplicación no ayuda, no había ningún mensaje relacionado con mi TAG.

la aplicación se detuvo después de que el diseño se coloreó inicialmente.

package com.test.intentdemo; 

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
//import android.os.SystemClock; 
import android.widget.RelativeLayout; 
import android.util.*; 
import java.lang.Thread; 

public class intentDemo extends Activity { 
    /** Called when the activity is first created. */ 
    RelativeLayout lLayout; 
    public static final String TAG="MyActivity"; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     lLayout = (RelativeLayout) findViewById(R.layout.main); 
     if (Log.isLoggable(TAG,0)) 
     { 
      Log.e(TAG,"ERROR BEFORE"); 
      Log.i(TAG,"INFO BEFORE"); 
      Log.d(TAG,"DEBUG BEFORE"); 

       lLayout.setBackgroundColor(Color.parseColor("#000000")); 
       //SystemClock.sleep(2000); 
       try 
       { 
       Thread.currentThread(); 
       Thread.sleep(2000); 
       } 
       catch (Exception e) 
       { 
       //e.message(); 
       } 


      Log.e(TAG,"ERROR AFTER"); 
      Log.i(TAG,"INFO AFTER"); 
      Log.d(TAG,"DEBUG AFTER"); 
     } 
    } 
} 

Cualquier ayuda con respecto a esto sería útil.

Respuesta

18
lLayout = (RelativeLayout) findViewById(R.layout.main); 

Esto está mal. findViewById espera una identificación de View. Por lo tanto, dar un ID de RelativeLayout, por ejemplo:

<RelativeLayout 
    android:id="@+id/the_id" 

continuación:

lLayout = (RelativeLayout) findViewById(R.id.the_id); 

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

public class intentDemo extends Activity { 
    public static final String TAG="MyActivity"; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     RelativeLayout lLayout = (RelativeLayout) findViewById(R.layout.the_id); 
     lLayout.setBackgroundColor(Color.parseColor("#000000")); 
    } 
} 
+0

@Cristian: Gracias por señalar el error, el problema aún persiste. ¿Puedes recomendar algo más? Gracias, Sid – Sid

+0

Solo para estar seguro ... Agregué un código de arriba ... ¿podrías probarlo y decirme si funciona o no? – Cristian

+1

tal vez el si no te está permitiendo llegar allí? Si ese es el caso, intente ver por qué sucede. En ese caso, esa no era tu pregunta ... preguntaste cómo cambiar el color de fondo, y ahora sabes cómo hacerlo, ¿no? – Cristian

8
RelativeLayout lLayout = (RelativeLayout) findViewById(R.layout.the_id);  
lLayout.setBackgroundColor(getResources().getColor(R.color.green_color)); 
Cuestiones relacionadas