Autore Topic: Menu associato alla pressione di un elemento in una ListView  (Letto 969 volte)

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Menu associato alla pressione di un elemento in una ListView
« il: 25 Ottobre 2010, 20:13:51 CEST »
0
Vi espongo il mio problema ho una ListView e vorrei che quando clicco su un elemento di questa listView mi compaia una finestra di dialogo con due bottoni
Elimina o Apri.
Cosa mi consigliate di usare? o_O
Let Your Brain Run Away

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Menu associato alla pressione di un elemento in una ListView
« Risposta #1 il: 25 Ottobre 2010, 20:19:08 CEST »
0
Direi che il Context Menu è quello che ti serve.
Dai uno sguardo a questi post:
Longpress LIstview - Android Developers Italia
AlertDialog di conferma cancellazione - Android Developers Italia
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:Menu associato alla pressione di un elemento in una ListView
« Risposta #2 il: 25 Ottobre 2010, 22:23:22 CEST »
0
Ci provo subito e ti faccio sapere gentilissimo come sempre  8-) tra poco arriva il magic sono emozionato  :-[
Let Your Brain Run Away

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:Menu associato alla pressione di un elemento in una ListView
« Risposta #3 il: 25 Ottobre 2010, 22:52:06 CEST »
0
Ci ho provato ma non ci sono riuscito ho controllato e ricontrollato ma non trovo l'errore

Codice (Java): [Seleziona]
private final static int OPEN_MENU_OPTION = 1;
private final static int DELETE_MENU_OPTION = 2;
ListView productsLv;
.................
//OnCreate()
productsLv=(ListView)findViewById(R.id.storesLv);
                registerForContextMenu(productsLv);
..........................

String[] from={"nome","ricerca" ,"citta","numtelefono" }; //dai valori contenuti in queste chiavi
                int[] to={R.id.negozioNameFav,R.id.negozioRicercaFav,R.id.negozioCittaFav,R.id.negozioTelefonoFav};//agli id delle view

                SimpleCursorAdapter adapter=new SimpleCursorAdapter( //semplice adapter per i cursor
                                this,
                                R.layout.negozio_lv_preferiti, //il layout di ogni riga/prodotto
                                CursoreActual,
                                from,
                                to);//in queste views

                productsLv.setAdapter(adapter); //la listview ha questo adapter
//ora facevo partire il listener ma l'ho commentato perchè non mi serviva più
.................

@Override
        public boolean onContextItemSelected(MenuItem item) {
              AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
          final long examId = info.id;

          switch (item.getItemId()) {

          case OPEN_MENU_OPTION:
                  Toast.makeText(PreferitiActivity.this,
                                                                                        "APRI "+info.position, Toast.LENGTH_SHORT).show();
                  return true;

          case DELETE_MENU_OPTION:
                  Toast.makeText(PreferitiActivity.this,
                                                "CANCELLA "+info.position, Toast.LENGTH_SHORT).show();
                  return true;


          default:
                  return super.onContextItemSelected(item);
          }
        }


        @Override
        public void onCreateContextMenu(ContextMenu menu, View v,
                        ContextMenuInfo menuInfo) {
               
                int group = Menu.FIRST;
        menu.add(group, OPEN_MENU_OPTION, Menu.FIRST, "OPEN");
        menu.add(group, DELETE_MENU_OPTION, Menu.FIRST + 1, "DELETE");
       
               
        }

Non vorrei che ci fossero problemi per via dell'Adapter Oo mi visualizza tutto ma quando premo un elemento lo clicca ma non fa niente
Let Your Brain Run Away

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:Menu associato alla pressione di un elemento in una ListView
« Risposta #4 il: 25 Ottobre 2010, 23:01:50 CEST »
0
Funziona ma come LongPress e non come click normale  o_O ma io non ho specificato da nessuna parte LongPress Oo o è una caratteristica del ContextMenu?
Let Your Brain Run Away

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Menu associato alla pressione di un elemento in una ListView
« Risposta #5 il: 25 Ottobre 2010, 23:27:25 CEST »
+1
Eh sì, mi ero scordato che il ContextMenu si apre sul Long Click :(

Su StackOverflow trovi un workaround su come farlo aprire anche sul Click semplice:
Android open ContextMenu on short click + pass item clicked details - Stack Overflow
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:Menu associato alla pressione di un elemento in una ListView
« Risposta #6 il: 26 Ottobre 2010, 00:06:01 CEST »
0
Ho usato un escamotage uso sia onClick per fare una cosa e longClick per fare un'altra  ;-) pollice in su per te e topic risolto grazie come sempre
Let Your Brain Run Away