Autore Topic: spinner e database  (Letto 1579 volte)

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
spinner e database
« il: 26 Gennaio 2011, 18:52:49 CET »
0
Salve! innanzitutto spero che sia la sezione giusta! uno spinner dovrebbe essere  un widget.... ma può essere che mi sbagli di grosso...
Allora io vorrei leggere dati dal database e visualizzarli in uno spinner... perchè poi l'utente deve scegliere uno di quei dati..
Codice adapter che legge i dati da database:
Codice (Java): [Seleziona]
//stampo
        Cursor cursor = database.fetchnomi();
        startManagingCursor(cursor);
SpinnerAdapter spinner_adapter = new SimpleCursorAdapter(this,
              android.R.layout.simple_spinner_item,
              cursor,
              new String[] { MyDatabase.LoginMetaData.NOME_UTENTE },
              new int[] { android.R.id.text1 });
      spinner.setAdapter(spinner_adapter);
     
      OnItemSelectedListener spinnerListener =new myOnItemSelectedListener(this,spinner_adapter);
      spinner.setOnItemSelectedListener(spinnerListener);
codice myonitemselectedlistener, in cui vorrei implementare cosa succede quando si seleziona qualcosa:
Codice (Java): [Seleziona]
package com.login;

import android.app.Activity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.SpinnerAdapter;
import android.widget.AdapterView.OnItemSelectedListener;

public class myOnItemSelectedListener implements OnItemSelectedListener {
        SpinnerAdapter mLocalAdapter;
        Activity mLocalContext;
         public myOnItemSelectedListener(Activity c, SpinnerAdapter spinnerAdapter) {

         this.mLocalContext = c;
         this.mLocalAdapter = spinnerAdapter;

       }
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                        long arg3) {
                // TODO Auto-generated method stub
               
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
                // TODO Auto-generated method stub
               
        }

}

non ho postato tutto il codice e il xml... ma se volete lo faccio!
Comunque nello spinner non visualizza un bel niente! per ora vorrei almeno vedere i dati nello spinner, poi per la logica di click su ogni item , ci penserò dopo.
Grazie in anticipo a chi saprà aiutarmi

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:spinner e database
« Risposta #1 il: 26 Gennaio 2011, 18:59:19 CET »
0
ahpoi un'altra cosa! ma ciò che viene selezionato nello spinner, viene memorizzato e gestito in un file?? perchè nell codice del tutorial hellospinner del sito android developer sembrerebbe così...., ma non fà vedere nè file nè niente!

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:spinner e database
« Risposta #2 il: 26 Gennaio 2011, 19:14:49 CET »
+1
sicuro che nel cursor ci sia qualcosa?

l'esempio di google usa come sorgente dati un file xml  immutabile,  invece tu usi un database

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:spinner e database
« Risposta #3 il: 26 Gennaio 2011, 19:15:48 CET »
+1
Il codice sembrerebbe corretto.
Sei cerco che il cursor contenga effettivamente dei dati? Prova a verificarlo tramite qualche tracciamento o il debugger.

[edit]
Qlimax mi hai anticipato :D

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:spinner e database
« Risposta #4 il: 26 Gennaio 2011, 21:05:54 CET »
0
ok, procedo!

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:spinner e database
« Risposta #5 il: 27 Gennaio 2011, 14:12:39 CET »
0
allora...
il cursor contiene i dati... ma nel resto del codice che vi ho postato non sò cos'abbia di strano, perchè poi lo spinner e il relativo codice l'ho copiato in un'altro file, in cui doveva stare, e qui mi visualizza i dati....
bè comunque grazie mille....

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:spinner e database
« Risposta #6 il: 27 Gennaio 2011, 14:15:47 CET »
0
un'altra cosuccia: lo spinner memorizza in un suo file, la scelta selezionata??? voi cosa ne sapete a riguardo? nel tutorial hellospinner guardando i vari metodi sembra che faccia così! dato che dovrei memorizzare la selezione scelta, non saprei come farla! per cui se la fà in automatico lo spinner, ok... anche se a me non andrebbe bene se l'item selezionato lo memorizzasse e poi lo cancellasse alla chiusura del programma... perchè quando l'utente riaprirà il programma desidererei che fosse ancora selezionato.... se lo ritenete opportuno apro un nuovo post a riguardo!

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:spinner e database
« Risposta #7 il: 27 Gennaio 2011, 14:22:11 CET »
0
No non salva da nessuna parte la scelta dell'utente. Perchè dovrebbe farlo in automatico poi?

Puoi salvare manualmente tu la scelta nelle SharedPreferences oppure in un database, a seconda delle tue esigenze.

per maggiori info: Data Storage | Android Developers

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:spinner e database
« Risposta #8 il: 27 Gennaio 2011, 14:27:08 CET »
0
a ok! allora ho interpetato male, ciò che c'è scritto nel tutorial hellospinner.
Comunque riguardo al codice di prima c'è ancora una cosa che non capisco, ovvero se scrivo
Codice (Java): [Seleziona]
 SpinnerAdapter spinner_adapter = new SimpleCursorAdapter(this,
              android.R.layout.simple_spinner_item,
              cursor,
              new String[] { MyDatabase.LoginMetaData.NOME_UTENTE },
              new int[] { android.R.id.text1 });
      spinner.setAdapter(spinner_adapter);
allora i dati li visualizzo, ma in un riquadro bianco.
nei 2 esempi "ufficiali" nel senso che si trovano sul sito android al posto di
Codice (Java): [Seleziona]
android.R.id.text1
c'è
Codice (Java): [Seleziona]
android.R.layout.simple_spinner_dropdown_iteme i dati appaiono in una lista di checkbox
Perchè se io scambio i due codici, non mi si vedono più i dati?
Grazie a chi saprà aiutarmi

Offline softmystery

  • Utente junior
  • **
  • Post: 105
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    lg optimus one
  • Sistema operativo:
    2.2
Re:spinner e database
« Risposta #9 il: 28 Gennaio 2011, 16:28:36 CET »
0
uffy nessuno lo sà? .... o mi consigliate di aprire un nuovo topic?

Offline darkmax

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
    • Emoe - Agenzia di comunicazione Torino
  • Dispositivo Android:
    Samsung Galaxy S 3
  • Sistema operativo:
    Mac OS X
Re:spinner e database
« Risposta #10 il: 09 Maggio 2012, 11:09:52 CEST »
0
Mi potresti dare una mano per aggiungere uno spinner che visualizzi dati da db?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:spinner e database
« Risposta #11 il: 09 Maggio 2012, 12:15:02 CEST »
0
Mi potresti dare una mano per aggiungere uno spinner che visualizzi dati da db?

Basta che crei un SimpleCursorAdapter in modo analogo a come lo creeresti per una ListView, l'unica cosa che cambia è il layout di default da utilizzare per ciascuna rigaa, che nello spinner è android.R.layout.simple_spinner_item

Offline Eu4ia

  • Utente junior
  • **
  • Post: 93
  • Respect: +16
    • Mostra profilo
  • Play Store ID:
    Eu4ia
  • Sistema operativo:
    Ubuntu 11.10 + Windows 7
Re:spinner e database
« Risposta #12 il: 23 Maggio 2012, 00:59:08 CEST »
0
Ciao Ricky è forse questa tua ultima affermazione che non mi è chiara.
Il problema a me infatti si manifesta col dropdown che apparentemente è vuoto (ma con numero di elementi congruo al cursor passato) e se scelgo un elemento viene valorizzato correttamente lo spinner.

Il mio problema è di visualizzazione delle righe e non dei dati (almeno credo) ...
Se ti sono stato utile premi "Thanks" ;-)