Autore Topic: Context from menu....  (Letto 565 volte)

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Context from menu....
« il: 19 Settembre 2011, 20:02:15 CEST »
0
ciao a tutti ho questo cod. di esempio....
Codice (Java): [Seleziona]
public class ContextMenuExsample extends Activity {  
    /** Called when the activity is first created. */  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
           
        Button btn = (Button) findViewById(R.id.button1);  
        registerForContextMenu(btn);          
    }  
       
    @Override  
    public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {  
    super.onCreateContextMenu(menu, v, menuInfo);  
        menu.setHeaderTitle("Context Menu");
        menu.setHeaderIcon(R.drawable.icon);
        menu.add(0, v.getId(), 0, "Action 1");        
        menu.add(0, v.getId(), 0, "Action 2");  
    }  
 
    @Override  
    public boolean onContextItemSelected(MenuItem item) {  
        if(item.getTitle()=="Action 1"){
                function1(item.getItemId());
               
        }  
        else if(item.getTitle()=="Action 2"){
                function2(item.getItemId());
        }  
        else {return false;}  
    return true;  
    }  
       
    public void function1(int id){  
        Toast.makeText(this, "function 1 called", Toast.LENGTH_SHORT).show();  
    }  
    public void function2(int id){  
        Toast.makeText(this, "function 2 called", Toast.LENGTH_SHORT).show();  
    }  
}  
quì il contextmenu si apre da un button......

io lo vorrei aprire da un menu...praticamente ho questo menu:
Codice (Java): [Seleziona]
@Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.list_songs:    
                       
               
                break;

ora per richiamare il contextmenu cosa dovrei inserire??? nel primo esempio c'è il richiamo:

registerForContextMenu(btn); 

ma quì è un bottone......nel mio caso cosa dovrei inserire?????
tutti possiamo programmare...basta volerlo!!!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re: Context from menu....
« Risposta #1 il: 19 Settembre 2011, 21:15:22 CEST »
0
Devi usare un Dialog:

 http://developer.android.com/guide/topics/ui/dialogs.html

Sent from my HTC Desire

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:Context from menu....
« Risposta #2 il: 19 Settembre 2011, 21:58:04 CEST »
0
ho trovato questo cod: molto bello!!!!! senza aver bisogno di inserire prima un alertdialog......
Codice (Java): [Seleziona]
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.SubMenu;
import android.widget.Toast;

/**
 * Class which shows how to work with Submenus
 *
 * @author FaYna Soft Labs
 */

public class Sottomenu extends Activity {

        private static final int FILE = 0;
        private static final int EDIT = 1;

        private static final int NEW_MENU_ITEM = Menu.FIRST;
        private static final int SAVE_MENU_ITEM = NEW_MENU_ITEM + 1;

        private static final int UNDO_MENU_ITEM = SAVE_MENU_ITEM + 1;
        private static final int REDO_MENU_ITEM = UNDO_MENU_ITEM + 1;

        @Override
        public void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.main);
        }

        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
                SubMenu fileMenu = menu.addSubMenu("File");
                SubMenu editMenu = menu.addSubMenu("Edit");
                fileMenu.add(FILE, NEW_MENU_ITEM, 0, "new");
                fileMenu.add(FILE, SAVE_MENU_ITEM, 1, "save");
                editMenu.add(EDIT, UNDO_MENU_ITEM, 0, "undo");
                editMenu.add(EDIT, REDO_MENU_ITEM, 1, "redo");
                return super.onCreateOptionsMenu(menu);
        }

        @Override
        public boolean onOptionsItemSelected(MenuItem item) {
                switch (item.getItemId()) {
                case NEW_MENU_ITEM:
                        showMsg("New");
                        break;
                case SAVE_MENU_ITEM:
                        showMsg("Save");
                        break;
                case UNDO_MENU_ITEM:
                        showMsg("Undo");
                        break;
                case REDO_MENU_ITEM:
                        showMsg("Redo");
                        break;
                }
                return super.onOptionsItemSelected(item);
        }

        private void showMsg(String message) {
                Toast msg = Toast.makeText(Sottomenu.this, message, Toast.LENGTH_LONG);
                msg.setGravity(Gravity.CENTER, msg.getXOffset() / 2,
                                msg.getYOffset() / 2);
                msg.show();
        }
}

mi sono trovato benissimo.....ma una cosa......se volessi mettere un immagine...come faccio???? o_O
tutti possiamo programmare...basta volerlo!!!