Código antes del problema setContentView

Mi pregunta es si es posible escribir código antes de setContentView() en el método onCreate() de la Activity principal. En el código siguiente quiero llamar a setVariables() antes de setContentView() pero esto hace que mi aplicación se bloquee. Si llamo setVariables() después de setContentView() , funciona bien. ¿Por qué es esto?

 package com.oxinos.android.moc; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.res.Resources; import android.os.Bundle; import android.view.View; import android.widget.CheckBox; public class mocActivity extends Activity { /** Called when the activity is first created. */ public static String prefsFile = "mocPrefs"; SharedPreferences mocPrefs; public Resources res; public CheckBox cafesCB, barsRestCB, clothingCB, groceriesCB, miscCB; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setVariables(); setContentView(R.layout.main); mocPrefs = getSharedPreferences(prefsFile,0); } private void setVariables(){ res = getResources(); cafesCB = (CheckBox) findViewById(R.id.cafesCheckBox); barsRestCB = (CheckBox) findViewById(R.id.barsRestCheckBox); clothingCB = (CheckBox) findViewById(R.id.clothingCheckBox); groceriesCB = (CheckBox) findViewById(R.id.groceriesCheckBox); miscCB = (CheckBox) findViewById(R.id.miscCheckBox); } public void submitHandler(View view){ switch (view.getId()) { case R.id.submitButton: boolean cafes = cafesCB.isChecked(); boolean barsRest = barsRestCB.isChecked(); boolean clothing = clothingCB.isChecked(); boolean groceries = groceriesCB.isChecked(); boolean misc = miscCB.isChecked(); SharedPreferences.Editor editor = mocPrefs.edit(); editor.putBoolean(res.getString(R.string.cafesBool), cafes); editor.putBoolean(res.getString(R.string.barsRestBool), barsRest); editor.putBoolean(res.getString(R.string.clothingBool), clothing); editor.putBoolean(res.getString(R.string.groceriesBool), groceries); editor.putBoolean(res.getString(R.string.miscBool), misc); editor.commit(); startActivity(new Intent(this, mocActivity2.class)); break; } } } 

Puede ejecutar cualquier código que desee antes del método setContentView() siempre que no se refiera a (partes de) la View , que aún no está configurada.

Dado que su método setVariables() se refiere al contenido de la View , no se puede ejecutar.

El método setContentView() establece el contenido de su archivo XML como View , que se muestra en la Activity .

Estás llamando a setVariables() antes de que hayas especificado una View para mostrar.

Por eso surge el error. El compilador no sabe a qué punto pertenece View . Si desea utilizar un ResourceView , debe establecerlo primero.

  • Error de permiso de acceso directo a la pantalla de inicio de Android
  • Volumen de audio de Android webRTC
  • ¿Es posible obtener el perfil seleccionado actualmente del teléfono?
  • Eliminar los acentos de String
  • Cogida claseNotFound excepción cuando la clase de carga de archivo dex descargado
  • Cómo importar la biblioteca ZXING en la aplicación Android?
  • Diferencia entre e.getMessage () y e.getLocalizedMessage ()
  • ¿Cómo obtengo espacios pequeños como separador de números en Android?
  • Envío de mayúsculas a un TextEdit durante pruebas instrumentadas
  • Comprueba si la aplicación está disponible en Android Market
  • ¿Cómo agregar una foto de contacto a ImageView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.