2011-09-06 27 views
9

Ora voglio aggiungerlo un menu nella parte inferiore dello schermo. Ho scritto molto su ma ancora non ho avuto modo di farlo. Il mio problema principale è che non ho un file xml sulla mia pagina principale. suoi liks sguardo che:Come creare un menu a livello di programmazione in Android?

public class start extends ListActivity { 
     static final String[] COUNTRIES = new String[] { 
     "NEWS1", "NEWS2","RADIO"}; 
Intent intent; 
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, COUNTRIES)); 

     ListView lv = getListView(); 
     lv.setTextFilterEnabled(true); 

     lv.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
      int position, long id) { 
if (((TextView) view).getText().equals("NEWS1")){ 
intent = new Intent(start.this, NewsActivity.class); 

come posso aggiungere un menu con un'azione. per favore mi dia un esempio. grazie

+0

Tab Menu o il menu come in quando si preme il pulsante Menu sul telefono? –

+0

Menu-tasto sul telefono –

risposta

6

Ya la sua fine se non avete un file XML nella vostra attività principale. È ancora possibile aggiungere menu seguendo questa procedura ->

  1. creare un file XML Android e selezionare il menu come tipo (verrà memorizzato nella sottocartella del menu della cartella res).
  2. Ora nel codice principale attività aggiungi a due metodi ->

    public boolean onCreateOptionsMenu(Menu menu){ 
        getMenuInflater().inflate(R.menu.yourmenuxmlfilename, menu); 
        return true; 
    } 
    public boolean onOptionsItemSelected(MenuItem item){ 
        switch(item.getItemId){ 
         case R.id.item1: 
          // what you want to do with first button 
          break; 
         case ..... 
          break; 
        } 
        return true; 
    } 
    
+0

questo metodo suCreateOptionsMenu (menu Menu) da dove ho bisogno di chiamarlo (da quale metodo chiamarlo?) ??? e come aggiungere elementi al menu? –

+0

aggiungi semplicemente questo metodo alla tua classe iniziale, ma ricorda che non aggiungere questo metodo nel tuo metodo onCreate(), aggiungili separatamente. E vai al menu File XML per aggiungere elementi ad esso. È molto semplice – Rocker

+0

grazie a lavoro, ma gli articoli sono neri non li vedo sul carattere nero su fondo nero –

35

utilizzare questo codice per aggiungere menù dinamico

private static final int NEW_MENU_ID=Menu.FIRST+1; 

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 

     menu.add(0, NEW_MENU_ID, 0, "New"); 

     return true; 
    } 
+0

A cosa serve il metodo 'booleano pubblico onPrepareOptionsMenu (Menu menu)'? Rimozione non mostra alcuna differenza. –

1

Per un menu di contesto si aggiunge solo

  getListView().setOnCreateContextMenuListener(new OnCreateContextMenuListener() { 

       @Override 
       public void onCreateContextMenu(ContextMenu menu, View v, 
         ContextMenuInfo menuInfo) { 

        menu.setHeaderTitle("Options"); 
        menu.add("Option1"); 
        menu.add("Option2"); 
        menu.add("Option3"); 

       } 
      }); 

Il menu contestuale appare proprio sulla lunga cliccare alla Voce elenco

-1

Per il menu opzioni

creare un file XML Android che si gonfiano nel menu delle opzioni

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    new MenuInflater(this).inflate(R.layout.options, menu); 
    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    //and your action for menu item click goes here 
-1

Come per aprire la finestra, allora? ex. quando fai clic su Informazioni, viene visualizzata la finestra di dialogo che dice: Creato da XXX, font16 e visita: "http://www.xxx.xxx" come collegamento ipertestuale?

.con questo codice:

private static final int NEW_MENU_ID=Menu.FIRST+1; 


@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 

     menu.add(0, NEW_MENU_ID, 0, "ABOUT"); 


     return true; 
    } 
Problemi correlati