recharge - Clase de actividad interna anidada en Android
recharge activity android (3)
No, eso no es posible. Después de todo, el sistema operativo Android necesitará crear una instancia de la actividad si se inicia en cualquier punto (por ejemplo, si se inicia con un intento), y es imposible crear una instancia de una ItemClass
sin un elemento ListClass
padre.
Recuerde que cada actividad es completamente independiente y puede iniciarse en cualquier momento mediante un intento.
¿Declarar una clase que amplía la Actividad dentro de otra clase de Actividad posible? Si es así, ¿cómo registraría esa clase en el manifiesto? Además, ¿es algo que puede hacerse razonablemente o es una mala idea?
Estaba pensando en algo así como
class ListClass extends ListActivity{
...
ArrayList items;
class ItemClass extends Activity{
...
Item item;
@Override
onCreate(){
Integer pos = getIntent().getExtras().getInt("pos");
item = items.get(pos);
}
}
@Override
onItemClick(int position){
startActivity(new Intent(this, ItemClass.class).putExtra("pos", position));
}
}
Tenga en cuenta que la sintaxis no es 100% correcta, obviamente, en su mayoría pseudocódigo.
También me gustaría saber por qué quieres hacer esto.
Sin embargo, no veo ninguna razón por la que no funcionaría. ¿No podría referenciarlo en el AndroidManifest como lo haría siempre que ambas clases sean públicas? es decir, com.falmarri.ListClass.ItemClass?
Editar: No importa, esto no funciona como señaló EboMike.
Sí, funciona - es solo otra clase - solo necesita declarar su actividad usando notación de clase interna en AndroidManifest.xml:
<activity android: name = ". ListClass $ ItemClass" />
Parece que funciona bien para mí, pero tal vez cuando se hizo esta pregunta, ¿no era compatible con las versiones anteriores de Android?
No estoy seguro de por qué querrías hacer esto, pero puedes.