2011-06-06 28 views
6

Acabo de empezar a aprender la programación de Android y mientras trabajaba en el tutorial de diseño de pestañas de Android noté que crearon una nueva intención con el siguiente código.Intentos de Android, preguntas sobre setClass()

// Create an Intent to launch an Activity for the tab (to be reused) 
intent = new Intent().setClass(this, ArtistsActivity.class); 

Hasta ahora, todos los libros que he leído han creado un nuevo intento usando

intent = new Intent(this, ArtistActivity.class); 

y se preguntaba si hay una diferencia entre las dos líneas de código.

Respuesta

5

Son equivalentes.

Basado en el comentario de la guía de aprendizaje ...

// Create an Intent to launch an Activity for the tab (to be reused) 

Parece que sólo tiene que utilizar el método .setClass() en lugar de la Constructor que toma una clase para ser más explícito que el elemento Intención creado no se reutilizará y .setClass() probablemente serán llamados de nuevo.

+0

Ahh, pensé que hicieron lo mismo. Todavía soy bastante nuevo en la programación y a veces me cuesta entender la documentación de la API, así que solo necesitaba confirmación. Gracias – user786362

1

No hay diferencia práctica. Solo hay una diferencia sobre cómo se está haciendo. Uno está usando el constructor, mientras que el otro es un setter. Pero el resultado final es exactamente el mismo. Consulte documentation.

0

Puede usar .setClass cuando la misma intención puede tener dos clases diferentes dependiendo de alguna condición. Aquí hay un ejemplo:

Intent resultIntent = new Intent(); 

    if (condition) { 
    resultIntent.setClass(getApplicationContext(), XXXX.class); 
       startActivity(resultIntent); 
    }else { 
    resultIntent.setClass(getApplicationContext(), YYYY.class); 
    }