Pregunta ¿Accediendo a la instancia de la actividad principal?


Supongamos que tengo una clase first.java (clase de actividad) y comienzo otra actividad en esta clase (second.java - clase de actividad). ¿Cómo puedo acceder a la instancia de first.java de second.java? ¿Puede alguien darme una buena explicación sobre esto? Un ejemplo sería genial ...


32
2018-02-09 12:10


origen


Respuestas:


Si necesita su segunda actividad para devolver algunos datos a su primera actividad, le recomiendo usar startActivityForResult () para comenzar su segunda actividad. Luego, en onResult () en su primera actividad puede hacer el trabajo necesario.

En First.java donde se inicia Second.java:

Intent intent = new Intent(this, Second.class);
int requestCode = 1; // Or some number you choose
startActivityForResult(intent, requestCode);

El método de resultado:

protected void onActivityResult (int requestCode, int resultCode, Intent data) {
  // Collect data from the intent and use it
  String value = data.getString("someValue");
}

En Second.java:

Intent intent = new Intent();
intent.putExtra("someValue", "data");
setResult(RESULT_OK, intent);
finish();

Si no desea esperar a que finalice la segunda actividad antes de realizar algún trabajo en la primera actividad, puede enviar una transmisión a la que reaccione la primera actividad.


40
2018-02-09 12:42



Simplemente puede llamar getParent() de la actividad infantil.

No tengo idea de por qué otras respuestas son tan complicadas.


7
2018-05-21 16:32



Solo esto debería funcionar

class first
{
    public static first instance;
    oncreate()
    {
        instance = this;
    }
}

first.instance es lo que se puede acceder desde la segunda clase


2
2018-02-09 13:12



prueba esto si esto funciona 4 u .........
algo como esto.....

class first
{
public static first instance;
oncreate()
{
instance=this;
}

public static getInstance()
{
return instance;
}

}

ahora desde la segunda clase, llame a first.getInstance ();

también puede acceder directamente a la instancia de forma estática como esta primera.instancia .......
Gracias...


-3
2018-02-09 12:24



No puedes crear una actividad directamente.     En la primera actividad, tome una variable de actividad estática como esta,

public static Activity activity;

En el onCreate haz esto.

activity = this;

Luego en la segunda actividad haz esto,

Activity activity = (your activity name).activity;

Editar:  Para pasar datos de una actividad a otra actividad, este no es el camino. La respuesta anterior fue obtener una instancia de actividad de otra actividad que se solicitó inicialmente.

Para pasar datos de una actividad a otra actividad, generalmente use el paquete. Pero si los datos no son del tipo de datos primitivos, entonces use la clase de objeto que debe implementar una interfaz parcelable o serializable. Luego, a través del paquete, solo se listan los objetos que podemos pasar por alto.


-3
2018-02-09 12:46