Autore Topic: Sqlite visualizzare il row successivo!!!  (Letto 463 volte)

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Sqlite visualizzare il row successivo!!!
« il: 14 Luglio 2013, 17:08:16 CEST »
0
ciao a tutti!!! ho creato un'applicazione dove faccio visualizzare il row selezionato da una listView di un database...

Poi ho creato 2 bottoni per andare avanti ed indietro per i rows...e quì ho trovato difficoltà!!!

per visualizzare il row selezionato ho scritto questo:
Codice (Java): [Seleziona]
public HashMap<String, String> getContattiInfo(String id) {
                HashMap<String, String> wordList = new HashMap<String, String>();
                SQLiteDatabase database = this.getReadableDatabase();
                String selectQuery = "SELECT * FROM contatti where contattiId='"+id+"'";
                Cursor cursor = database.rawQuery(selectQuery, null);
                if (cursor.moveToFirst()) {
                do {
       
                        wordList.put("nome", cursor.getString(1));

                } while (cursor.moveToNext());
            }                              
        return wordList;
        }

ora come faccio a visualizzare quello successivo????

stò trovando molta difficoltà!!! aiutatemi!!!
tutti possiamo programmare...basta volerlo!!!

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Sqlite visualizzare il row successivo!!!
« Risposta #1 il: 14 Luglio 2013, 21:10:08 CEST »
0
basta che al clic del bottone richiami la funzione da te fatta vedere e se aumenti sommi 1 al tuo id da passargli o sottrai se vuoi andare indietro controllando se sei al massimo id o il minimo

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:Sqlite visualizzare il row successivo!!!
« Risposta #2 il: 15 Luglio 2013, 08:54:12 CEST »
0
ciao!!!!
per andare avanti dovrei sommare "+1" all'id...ma lo vedo sommare al richiamo dell'vento click o al codice che ti ho scritto??

per visualizzare il row selezionato all'evento click io scrivo questo:
Codice (Java): [Seleziona]
nomeEdit = (EditText) findViewById(R.id.nomeEdit);
cognomeEdit = (EditText) findViewById(R.id.cognomeEdit);
                       
Intent objIntent = getIntent();
String contattiId = objIntent.getStringExtra("contattiId");
//Log.d("Reading: ", "Reading all contatti..");
                       
HashMap<String, String> contattiList = controller.getInfoContatti(contattiId);
//Log.d("nome",contattiList.get("nome"));
                       
if(contattiList.size()!=0) {
         nomeEdit.setText(contattiList.get("nome"));
        cognomeEdit.setText(contattiList.get("cognome"));
}

dove devo aggiungere il "+1"????
Help!!
« Ultima modifica: 15 Luglio 2013, 08:57:56 CEST da paul78 »
tutti possiamo programmare...basta volerlo!!!

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Sqlite visualizzare il row successivo!!!
« Risposta #3 il: 15 Luglio 2013, 09:03:44 CEST »
0
la somma la devi mettere nel evento onclick perche devi avere gia l'id che ti serve nella chiamata alla funzione tipo :

Codice (Java): [Seleziona]
bottoneavanti.setOnClickListener(new OnClickListener() {
                       
                        public void onClick(View v) {
                                 id=id+1;
                                getContattiInfo(id)
                             
                        }
                });

bottoneindietro.setOnClickListener(new OnClickListener() {
                       
                        public void onClick(View v) {
                                 id=id-1;
                                getContattiInfo(id)
                             
                        }
                });

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:Sqlite visualizzare il row successivo!!!
« Risposta #4 il: 15 Luglio 2013, 10:24:25 CEST »
0
non riesco!!! :-[

ho scritto questo:
Codice (Java): [Seleziona]
public void nextContatti(View view) {
Intent objIntent = getIntent();
String contattiId = objIntent.getStringExtra("contattiId");
               
// quì ho aggiunto il +1              
HashMap<String, String> contattiList = controller.getNextContatti(contattiId + 1);
               
               
                if(contattiList.size()!=0) {
                        nomeEdit.setText(contattiList.get("nome"));
                        cognomeEdit.setText(contattiList.get("cognome"));
                }
}

dove sbaglio???
tutti possiamo programmare...basta volerlo!!!

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Sqlite visualizzare il row successivo!!!
« Risposta #5 il: 15 Luglio 2013, 10:37:28 CEST »
0
mi sono un po perso, all inizio mi hai fatto vedere questa funzione getContattiInfo(id) ora invece mi chiami getNextContatti() che e nella classe controller.

fai una cosa postami il codice della classe con la funzione e quello dove la richiami cosi faccio ordine mentale e posso aiutarti

Post unito: 15 Luglio 2013, 10:39:34 CEST
comunque dando per scontato che la classe chiamata e giusta prova a non fare +1 all interno delle parentesi ma come ti ho scritto prima sostituisci proprio la variabile cio prima di chiamare fai:

contattiId =contattiId +1;
 
e poi chiami la funzione

controller.getNextContatti(contattiId);
« Ultima modifica: 15 Luglio 2013, 10:39:34 CEST da zorcraft, Reason: Merged DoublePost »

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:Sqlite visualizzare il row successivo!!!
« Risposta #6 il: 15 Luglio 2013, 10:46:21 CEST »
0
hai ragione!!! oggi ho cambiato pc ed ho modificato il cod...

allora nel DBHelper il cod: è questo:
Codice (Java): [Seleziona]
public HashMap<String, String> getNextContatti(String id) {
                HashMap<String, String> wordList = new HashMap<String, String>();
                SQLiteDatabase database = this.getReadableDatabase();
                String selectQuery = "SELECT * FROM contatti where contattiId='"+id+"'";
                Cursor cursor = database.rawQuery(selectQuery, null);
                if (cursor.moveToFirst()) {
                do {
                                        //HashMap<String, String> map = new HashMap<String, String>();
                        wordList.put("nome", cursor.getString(1));
                        wordList.put("cognome", cursor.getString(2));
                                   //wordList.add(map);
                } while (cursor.moveToNext());
            }                              
        return wordList;       
        }              
}

mentre nell'altro activity ...cioè dove ho  i 2 bottoni per andare avanti ed indietro scrivo questo:

Codice (Java): [Seleziona]
public void nextContatti(View view) {
       
                nomeEdit = (EditText) findViewById(R.id.nomeEdit);
                cognomeEdit = (EditText) findViewById(R.id.cognomeEdit);
               
                Intent objIntent = getIntent();
                String contattiId = objIntent.getStringExtra("contattiId");
                //contattiId = contattiId+1;
                HashMap<String, String> contattiList = controller.getNextContatti(contattiId);
               
                if(contattiList.size()!=0) {
                        nomeEdit.setText(contattiList.get("nome"));
                        cognomeEdit.setText(contattiList.get("cognome"));
                }
        }

ma nel momento in cui clicco...non succede nulla!!!!
tutti possiamo programmare...basta volerlo!!!

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Sqlite visualizzare il row successivo!!!
« Risposta #7 il: 15 Luglio 2013, 10:59:55 CEST »
0
spero di aver interpretato bene il codice allora:

nella clase del bottone al inizio nel oncreate recuperi il tuo intent quindi togli dal clic questo codice

Codice (Java): [Seleziona]
Intent objIntent = getIntent();
String contattiId = objIntent.getStringExtra("contattiId");

e lo vai a piazzare fuori cosi dichiari la tua variabile contattiId.
dop di che all interno del bottone al posto del codice che hai levato metti quello che ti ho gia scritto prima e siccome e una stringa la trasformi in integer ci fai i calcoli e la ritrasformi in stringa

Codice (Java): [Seleziona]
contattiIdnumero =Integer.parseInt(contattiId);
contattiIdnumero++;
contattiId =""+contattiIdnumero;

credo che cosi funzioni fammi sapere

Offline paul78

  • Utente normale
  • ***
  • Post: 359
  • Respect: +1
    • Mostra profilo
    • Android Code
  • Sistema operativo:
    Linux - Windows
Re:Sqlite visualizzare il row successivo!!!
« Risposta #8 il: 15 Luglio 2013, 11:20:28 CEST »
0
...grazie mille ho risolto!!!!

praticamente sbagliavo all'intent...lo dovevo solo richiamare all'inizio dell'onCreate!!!! mentre lo rinominavo sempre!!!

cmq mi serve per lezione alle prox. applicazioni!!!!

grazie ancora!!!
tutti possiamo programmare...basta volerlo!!!

Offline zorcraft

  • Utente junior
  • **
  • Post: 108
  • Respect: +5
    • Mostra profilo
  • Dispositivo Android:
    note
  • Play Store ID:
    zorcraft
Re:Sqlite visualizzare il row successivo!!!
« Risposta #9 il: 15 Luglio 2013, 11:35:22 CEST »
0
di nulla e stato un piacere