Androide actividad clase constructor trabajando

Al considerar el caso con la actividad androide, el primer método para trabajar es su onCreate método .. ¿verdad?

Supongamos que quiero pasar 2 parámetros a la clase de actividad de Android, digamos UserHome . Para eso estoy creando el constructor de la clase de actividad UserHome y aceptando los parámetros.

Pero cuando llamamos a una actividad, no estamos inicializando la clase Activity, simplemente estamos creando una intención de la clase UserHome .

Entonces, ¿cómo podemos pasar los parámetros a esa actividad de otra actividad sin usar la intent.putExtra("keyName", "somevalue"); uso.

Los expertos aclaran cómo podemos cubrir una situación como esta.

No estoy seguro de por qué no quieres usar los params intención. Eso es para lo que están ahí. Si necesita pasar los mismos parámetros de diferentes lugares en su aplicación, podría considerar el uso de un constructor estático que genere su solicitud de intención para usted.

Por ejemplo:

 /** * Sample activity for passing parameters through a static constructor * @author Chase Colburn */ public class ParameterizedActivity extends Activity { private static final String INTENT_KEY_PARAM_A = "ParamA"; private static final String INTENT_KEY_PARAM_B = "ParamB"; /** * Static constructor for starting an activity with supplied parameters * @param context * @param paramA * @param paramB */ public static void startActivity(Context context, String paramA, String paramB) { // Build extras with passed in parameters Bundle extras = new Bundle(); extras.putString(INTENT_KEY_PARAM_A, paramA); extras.putString(INTENT_KEY_PARAM_B, paramB); // Create and start intent for this activity Intent intent = new Intent(context, ParameterizedActivity.class); intent.putExtras(extras); context.startActivity(intent); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Extract parameters Bundle extras = getIntent().getExtras(); String paramA = extras.getString(INTENT_KEY_PARAM_A); String paramB = extras.getString(INTENT_KEY_PARAM_B); // Proceed as normal... } } 

A continuación, puede iniciar su actividad llamando a:

ParameterizedActivity.startActivity(this, "First Parameter", "Second Parameter");

Puedo ver una situación en la que no puedes usar el método estándar de pasar los parámetros a través de la Intent : Cuando estás creando una actividad que será lanzada por otra aplicación (por ejemplo, la actividad de edición de un complemento Tasker ) y , Por lo tanto, no tienen control sobre la Intent que lanzará su actividad.

Es posible crear una Activity que acepte parámetros en su constructor. El truco para usarlo, sin embargo, no es usarlo directamente, sino usar una clase derivada con un constructor por defecto que llame a super() con los argumentos apropiados, como tal:

 class BaseActivity extends Activity { public BaseActivity(String param1, int param2) { // Do something with param1 and param2. } // Many more lines of awesomeness. } class DerivedActivity extends BaseActivity { public DerivedActivity() { super("param1", 42); } } 

Naturalmente, si necesita generar los parámetros para pasar a BaseActivity() , simplemente puede reemplazar los valores codificados con llamadas de función.

Podemos pasar el valor de la actividad de los padres a la actividad de los niños usando la colección de paquetes y la preferencia compartida. 1. Preferencia Compartida 2. Colección de Paquetes

Transmisión de datos o parámetros a otra actividad Android

Pero también puede crear muy bien un constructor de UserHome.

 public class MainActivity extends Activity { UserHome userHome = new UserHome(param1,param2); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); userHome.yourMethod(); }} 

MainActivity es una clase como cualquier otra, sólo que se extiende la actividad, pero también mantiene las propiedades de una clase, por lo que puede tener, los constructores, los métodos, los miembros.

  • Modificación de atributos anidados en un Layout incluido
  • Android: ¿Cómo puedo pasar parámetros a OnPreExecute () de AsyncTask?
  • Pasar parámetros de Android FragmentActivity a Fragment
  • ¿Son posibles los parámetros de strings.xml?
  • ¿Cómo puedo hacer una petición Volley JSONObject con un objeto personalizado como parámetro?
  • parámetros de glGenTexture?
  • Análisis bytecode de Android para parámetros de método
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.