2010-01-09 9 views
29

He estado aprendiendo a desarrollarme en Android y tenía una pregunta más general: si tengo un diseño que usa una lista y algunas otras vistas, ¿debería usar Activity o ListActivity para mi clase de actividad?Android - Actividad frente a ListActivity - ¿Cuál debería ser la extensión de mi clase de actividad?

Sé que ListActivity probablemente hará las cosas más fáciles de anular los eventos específicos de la lista, pero ¿hay alguna otra ventaja al usar una actividad de lista sobre la actividad? ¿Qué sucede si quiero cambiar el diseño en el futuro a un GridView? ¿Sería más/menos doloroso cambiar el código de la clase?

Tenía curiosidad acerca de los "mejores prácticas" en este sentido y cuáles son los beneficios conllevan, por lo que cualquier respuesta sería de gran ayuda :)

Bara

Respuesta

43

Usaría un ListActivity ya que le da muchos métodos de acceso directo para facilitar las cosas y mantener su código más legible.

Por ejemplo, obtiene el onListItemClick() method al que se llama cada vez que hace clic en un elemento que le ahorra la creación de un oyente por separado.

Si desea cambiar el diseño de un ListActivity, todavía puede con setContentView() method from Activity. Siempre y cuando haya un ListView llamado @android:id/list en algún lugar de su View, el ListActivity seguirá funcionando.

Si aún no está seguro, siempre puede mirar el source code for ListActivity y ver que no hace mucho más que facilitarle la vida.

+0

Acabo de seguir este enfoque al tratar de refactorizar algunos códigos que usan la misma base pero actividad y actividad de lista. Coloqué un ListView vacío en la parte común de mi diseño y luego compartí esa parte común usando las etiquetas y . –

+0

ListActivity tiene algunos errores que se manifiestan en ciertos casos de uso. Así que ListActivity es conditonally utilizable en caso de uso muy muy básico. Y en ese caso es lo suficientemente simple para usar Activity y ListView. – Anderson

11

me gustaría ir con la actividad. Realmente no veo la razón para usar ListActivity, a menos que quiera hacer algo trivial y sepa que va a estar con la Lista.

+0

¿Eso significa que no hay ventajas al usar ListActivity sobre Activity y simplemente está ahí como un "atajo" de géneros? ¿Hay algún tipo de estándar para esto que Google espera? – Bara

+2

Para mí, las ventajas son las que Dave mencionó anteriormente, ahorrando tiempo y haciendo que el código sea un poco más limpio. Observe ListActivity en documentos o en el código fuente como sugirió Dave y vea si necesita esa conveniencia. Personalmente, uso la actividad en la mayoría de los casos. –

+2

Estoy de acuerdo. ListActivity no ha sido suficiente. Todavía puede ser agradable algo trivial. –

0

Debe utilizar Activity en lugar de ListActivity porque los códigos ListActivity no son reutilizables y debe escribirlos una y otra vez.

+1

Esto no proporciona una respuesta a la pregunta. Una vez que tenga suficiente [reputación] (https://stackoverflow.com/help/whats-reputation) podrá [comentar cualquier publicación] (https://stackoverflow.com/help/privileges/comment); en su lugar, [brinde respuestas que no requieran aclaración del autor de la pregunta] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- i-do-instead). - [De la crítica] (/ review/low-quality-posts/18620473) – thewaywewere

Cuestiones relacionadas