2011-09-06 29 views
9

Teraz chcę dodać to menu w dolnej części ekranu. Napisałem dużo o, ale nadal nie wiedziałem, jak to zrobić. Moim głównym problemem jest to, że nie mam pliku xml na mojej stronie głównej. jego Liks wygląd, który:Jak programowo utworzyć menu w systemie 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); 

jak mogę dodać menu z akcją. proszę podać przykład. dzięki

+0

TAB-menu lub menu jak w po naciśnięciu przycisku MENU w telefonie? –

+0

Przycisk menu w telefonie –

Odpowiedz

6

Ya jest w porządku, jeśli nie masz pliku XML w swojej głównej działalności. Możesz nadal dodawać do niego menu, wykonując następujące czynności ->

  1. utwórz plik XML z Androidem i wybierz menu jako typ (Zostanie on zapisany w podkatalogu menu folderu res).
  2. Teraz w głównym kodzie aktywności dodać te dwie metody ->

    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

tej metody onCreateOptionsMenu (menu menu) od miejsca, gdzie muszę go wywołać (z jakiej metody to nazwać?) ??? i jak dodawać elementy do menu? –

+0

po prostu dodaj tę metodę do klasy początkowej, ale pamiętaj, że nie dodawaj tej metody w metodzie onCreate(), dodaj je osobno. I przejdź do menu pliku XML, aby dodać elementy do niego. To bardzo proste. – Rocker

+0

dzięki pracy, ale przedmioty są czarne i nie widzę ich na czarnej czcionce na czarnej ziemi –

35

użyć tego kodu, aby dodać menu dynamicznie

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

Jaki jest pożytek z metody "public boolean onPrepareOptionsMenu (menu menu)" tutaj? Usunięcie go nie pokazuje żadnej różnicy. –

1

Do menu kontekstowego po prostu dodać

  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"); 

       } 
      }); 

Menu kontekstowe tylko pojawia się na długo kliknij do pozycja listy

-1

Dla menu opcji

utworzyć plik xml android że nadmuchać w menu opcji

@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

Jak otworzyć okno dialogowe wtedy? dawny. kiedy klikniesz w O, otworzy się okno dialogowe mówiąc: Made by XXX, font16 i odwiedziny: "http://www.xxx.xxx" jako hiperłącze?

.Za ten kod:

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; 
    } 
Powiązane problemy