Domanda

Sono nuovo nello sviluppo di Android.Voglio che ogni attività abbia uno stesso menu popup personalizzato in alto a destra.Io uso un LinearLayout in xxmenu.xml e includerlo nei file xml di layout di ogni attività.Il display è OK.Come il OnClickListener dovrebbe essere lo stesso, non voglio implementare il OnClick funzioni nel file Java di ogni attività.Come posso farlo?

So che Android ha una soluzione di menu intrinseca tramite OptionsMenu, ma non so se può esser personalizzato o come, per esempio, lo voglio su angolo topright, con sfondi diversi, ogni oggetto ha un'icona di immagine seguita da texts, one-side shadow, ecc.)

È stato utile?

Soluzione 2

Innanzitutto, la soluzione è definire una classe base (ad es., BaseActivity) estendere Activity, e le attività effettive usando questo menu per estendere BaseActivity (es., MainActivity extends BaseActivity).

In secondo luogo, utilizzare un xml separato per definire il layout del menu e includerlo in altri layout.Un modo semplice per legare gli ascoltatori è usare android:onClick="toggleMenu".

In terzo luogo, implementare public void toggleMenu(View v) in BaseActivity.

Possiamo anche chiamare le viste e fare i binding nel codice Java.Ma ho incontrato un problema di sequenza di codice che se ottengo la vista cliccabile tramite findViewById in BaseActivitydi onCreate(), ritorna null, e l'associazione fallisce.Quindi il ritrovamento delle viste e dei seguenti binding dovrebbe essere fatto nelle classi figlio (ad es., MainActivity), dopo aver chiamato super.onCreate().

Altri suggerimenti

Effettuare una classe Abstract BasActivity che implementa onCreateOptionsMenu e onOptionsItemSelected per il tuo menu comune e voci di menu.Quindi rendi tutte le tue altre attività si estendono da quella.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top