2011-11-24 12 views
8

¡Soy totalmente nuevo en Android (Java) Development y estoy muy emocionado! La guía para desarrolladores de Google es fantástica y aprendí mucho en poco tiempo. Incluso me mantiene despierto durante la noche;)Clase de ampliación para la actividad

Hoy pasé por hacer menús y hay algo que no puedo entender. Se trata de extender las clases. La guía dice:

Consejo: Si la aplicación contiene múltiples actividades y algunos de ellos proporcionar el mismo menú Opciones, considere la creación de una actividad que implementa nada, excepto el onCreateOptionsMenu() y onOptionsItemSelected) (métodos. Luego, amplíe esta clase para cada actividad que debe compartir el mismo Menú de Opciones. De esta forma, tiene para administrar solo un conjunto de códigos para manejar acciones de menú y cada clase descendiente hereda los comportamientos del menú.

El punto que no entiendo es cómo extender una clase ... Vamos a decir que tengo un MainActivity y una subactividad. Quiero tener el mismo menú en ambas actividades, así que hago un MainMenuActivity. ¿Cómo extiendo esta clase para ambas actividades?

Sí, busqué en la red pero no pude encontrar ninguna utilizable. Realmente quiero entenderlo, así que espero que alguien me pueda ayudar con algún ejemplo de código + explicación. ¡¡Gracias de antemano!!

+0

También compruebe [esta] (http: // stackoverflo w.com/questions/7618227/can-i-combine- my-code-into-some-kind-of-global-activity/7618263#7618263) simplemente similar a lo que está hablando. –

Respuesta

18

Lo que quieren decir es lo siguiente:

Normalmente usted tendría que:

public class MyActivity extends Activity{...} 

Si tiene 4-5-6 ... de esas actividades, y cada uno de ellos utiliza el mismo menú código, puede copiar y pegar el código 4-5-6 .. veces. O bien, podría hacer esto:

public class BaseActivity extends Activity{ 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     //My menu code 
    } 
} 

Y el uso de esta clase para sus 4-5-6 ... Actividades:

public class MyActivity extends BaseActivity{...} 

De esta manera no es necesario copiar el código en la creación de menús todas tus Actividades, y además, no tienes que editar 4-5-6 ... clases para editar un poco de creación del menú. El código del menú ahora también está en MyActivity.


También puede echar un vistazo here, se explica qué extends medios.

+0

¡Muchas gracias! ¡Ahora lo entiendo, es más fácil de lo que pensaba! – MartijnG

9

Es bastante simple realmente.

MainMenuActivity

public class MainMenuActivity extends Activity { 
    //Override or add whatever functionality you want other classes to inherit. 
} 

MainActivity

public class MainActivity extends MainMenuActivity { 
    //Add what is specific to MainActivity. The menu will be inherited from MainMenuActivity. 
} 

subactividad

public class SubActivity extends MainMenuActivity { 
    //Add what is specific to SubActivity. The menu will be inherited from MainMenuActivity. 
} 
Cuestiones relacionadas