Autore Topic: Restituire registri da SQlite database tramite Cursor  (Letto 375 volte)

Offline marc

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    bq acquaris m5
  • Sistema operativo:
    ubuntu, mac Os
Restituire registri da SQlite database tramite Cursor
« il: 16 Marzo 2016, 19:29:02 CET »
0
Salve ragazzi, sto provando a creare un app android, ho creato un database utilizzando le classi DBhelper e dbManager, inserisco cancello e modifico dati senza problema poi visualizzandoli nel DDMS, la mia intenzione è di "stampare" (visualizzare) in una seconda Activity uno o piu dati estratti dal DB, quindi, creare un TEXTBOX, inserire quello che voglio farmi restituire dal data base premere un button che mi rindirizza alla seconda activity con il risultato desiderato. Leggendo su internet ho capito che questa operazione si fa con Cursor e si possono prelevare tutti o alcuni dati, i metodo che ho fatto sono i seguenti:
Codice (Java): [Seleziona]
public Cursor fecheTodo(long rowId)throws SQLException{
    Cursor mCursor=db.query(true,TABLE_NAME, new String[]{
                    CN_ID,CN_NAME,CN_PHONE}, CN_NAME + "=" + rowId,null,null,null,null,null);

   if (mCursor !=null) {
       mCursor.moveToFirst();
         }
   return mCursor;
    }



    public ContentValues generaContentValues(String nome, String telefono){
        ContentValues valori=new ContentValues();
        valori.put(CN_NAME, nome);
        valori.put(CN_PHONE, telefono);
       return valori;
    }


di seguito la classe DataBaseManager completa:
Codice (XML): [Seleziona]
package database;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.provider.ContactsContract;

import java.sql.SQLException;
import java.util.List;

/**
 * Created by Antonio on 08/03/2016.
 * Questa classe è la classe che gestisce tutte le operazioni di aggiornamento delle tabelle
 */
public class DataBaseManager{
    public static  final String TABLE_NAME="contatti";

    //kiave primaria
    public static final String CN_ID="id";
    public static final String CN_NAME ="name";
    public  static final  String CN_PHONE= "telefono";

    //creazione della tabella in sqlite
    public static final String CREATE_TABLE = "create table " +TABLE_NAME+ "("
            + CN_ID+" integer primary key autoincrement,"
            + CN_NAME+" text not null,"
            + CN_PHONE+" tetx );";

    private  DbHelper helper;
    private SQLiteDatabase db;

    public DataBaseManager(Context context) {
        helper=new DbHelper(context);

        // ci permette di scrivere sul data base
        db=helper.getWritableDatabase();

    }

    // funzione chiudere il data base

    public  void chiudere(){
        db.close();
    }


    // getters and setters
    public DbHelper getHelper() {
        return helper;
    }

    public void setHelper(DbHelper helper) {
        this.helper = helper;
    }

    public SQLiteDatabase getDb() {
        return db;
    }

    public void setDb(SQLiteDatabase db) {
        this.db = db;
    }



    // ritorna un cursor che contiene tutti gli item
    public Cursor cargarCursor(){
        String[] columnas= new String[]{CN_ID, CN_NAME, CN_PHONE};
        return getDb().query(TABLE_NAME, columnas, null, null, null, null, null);
    }

    //ritorna un Cursor che contiene la info del item
    public Cursor fecheTodo(long rowId)throws SQLException{
    Cursor mCursor=db.query(true,TABLE_NAME, new String[]{
                    CN_ID,CN_NAME,CN_PHONE}, CN_NAME + "=" + rowId,null,null,null,null,null);

   if (mCursor !=null) {
       mCursor.moveToFirst();
         }
   return mCursor;
    }


// questa funzione ci ristituisce i dati del db
    public ContentValues generaContentValues(String nome, String telefono){
        ContentValues valori=new ContentValues();
        valori.put(CN_NAME, nome);
        valori.put(CN_PHONE, telefono);
       return valori;
    }


    //id non viene messo xke autoincrementante
    public  void inserisci(String nome, String telefono){
        //Se nessu campo puo essere nullo allora solo TABLE_NAME, invece se un campo lo vogliamo nullo lo inseriamo db.insert(TABLE_NAME, null)
        ContentValues valori=new ContentValues();
        valori.put(CN_NAME, nome);
        valori.put(CN_PHONE, telefono);
        db.insert(TABLE_NAME, null, generaContentValues(nome, telefono));
    }

    public void elimina(String nome){
        //db.delete(table, clausola where, argomenti where)
        db.delete(TABLE_NAME, CN_NAME + "=?", new String[]{nome});
    }

    public void eliminazioneMultipla(String nome1, String nome2){
        db.delete(TABLE_NAME, CN_NAME + "IN (?,?)", new String[]{nome1, nome2});
    }

    public  void modificaTelefono(String nome,String nuovoTelefono) {
        //Come modificare un recod della tabella andimo amodificare il numero di telefono della tabella
        db.update(TABLE_NAME, generaContentValues(nome, nuovoTelefono), CN_NAME + "=?", new String[]{nome});

    }





   

}

e infine il mio mainActivity:

Codice (Java): [Seleziona]
package com.example.antonio.primaapplicazione;

import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

import android.R.*;
import database.DataBaseManager;
import database.DbHelper;
import android.view.Window;
import android.view.WindowManager;
import android.widget.Toast;

import java.sql.DatabaseMetaData;

public class MainActivity extends AppCompatActivity {

    private DataBaseManager manager;

    private Cursor cursor;

    SimpleCursorAdapter adapter;






    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    manager = new DataBaseManager(this);




        configureImageButton();
        configureImageButton1();
        configureImageButton2();
        configureImageButton3();
        configureImageButton4();
        configureImageButton5();


        manager=new DataBaseManager(this);


        manager.inserisci("Marcos","3314055163");
        manager.inserisci("Antonio", "3326425643");

        manager.inserisci("gildas", "331555555555163");


        // codice quando viene premuto bottone passa alla seconda activity

        Button T=(Button)findViewById(R.id.hola);
        T.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                Intent i = new Intent(getApplicationContext(), Activity2.class);
                startActivity(i);
            }
        });


        /*
    // bottone per accedere e mostrare risultati base dati
        final Button dataBase=(Button)findViewById(R.id.buttonDB);
        dataBase.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                EditText edID= (EditText)findViewById(R.id.);
                EditText edName= (EditText)findViewById(R.id.);
                EditText edTeledono= (EditText)findViewById(R.id.);
                String strID=edID.getText().toString();
                String strName=edName.getText().toString();
                String strTelefono=edTeledono.getText().toString();




            }
        });*/


        Button btnShowAllData=(Button)findViewById(R.id.buttonDB);
            btnShowAllData.setOnClickListener(new Button.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent intento=new Intent(MainActivity.this, Risultati.class);
                    startActivity(intento);

                }
            });

        }

        /*
        ImageButton TT= (ImageButton) findViewById(R.id.imageButtonPoste);
        TT.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                Intent i = new Intent(getApplicationContext(), ActivityPoste.class);
                startActivity(i);
            }
        });*/


       /*

        ImageButton imgMuseo= (ImageButton) findViewById(R.id.imageButtonMuseo);
        imgMuseo.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                Intent i = new Intent(getApplicationContext(), ActivityMuseo.class);
                startActivity(i);
            }
        });*/



        /*
        ImageButton imgPolizia= (ImageButton) findViewById(R.id.imageButtonPolizia);
        imgPolizia.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                Intent i = new Intent(getApplicationContext(), ActivityPolizia.class);
                startActivity(i);
            }
        });*/

/*
        ImageButton imgFarmacia= (ImageButton) findViewById(R.id.imageButtonFarmacia);
        imgFarmacia.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                Intent i = new Intent(getApplicationContext(), ActivityFarmacia.class);
                startActivity(i);
            }
        });*/

/*
        ImageButton imgRestaurante= (ImageButton) findViewById(R.id.imageButtonRestaurante);
        imgRestaurante.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                Intent i = new Intent(getApplicationContext(), ActivityRestaurante.class);
                startActivity(i);
            }
        });*/








// funzioni che mostra testo quando viene premuto il imageButton e cambia immagine.


    // FUNZIONE FARMACIA
private  void configureImageButton(){
    ImageButton btn= (ImageButton)findViewById(R.id.imageButtonFarmacia);
    btn.setOnClickListener(new View.OnClickListener(){

        @Override
        public void onClick(View v) {
            Toast.makeText(MainActivity.this,"FARMACIE",Toast.LENGTH_LONG).show();

            // cambia immagine seconda immagine
            ImageButton btn= (ImageButton)findViewById(R.id.imageButtonFarmacia);
            btn.setImageResource(R.drawable.ic_launcher_farmacia2);

            Intent i = new Intent(getApplicationContext(), ActivityFarmacia.class);
            startActivity(i);

        }
    });


    }


    // FUNZIONE POSTE

    private  void configureImageButton1(){
        ImageButton btn= (ImageButton)findViewById(R.id.imageButtonPoste);
        btn.setOnClickListener(new View.OnClickListener(){

            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"POSTE ITALIANE",Toast.LENGTH_LONG).show();

                // cambia immagine seconda immagine
                ImageButton btn= (ImageButton)findViewById(R.id.imageButtonPoste);
                btn.setImageResource(R.drawable.ic_launcher_poste2);

                Intent i = new Intent(getApplicationContext(), ActivityPoste.class);
                startActivity(i);

            }
        });

    }

        // FUNZIONE POLIZIA


    private  void configureImageButton2() {
        ImageButton btn = (ImageButton) findViewById(R.id.imageButtonPolizia);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "POLIZIA", Toast.LENGTH_LONG).show();

                // cambia immagine seconda immagine
                ImageButton btn = (ImageButton) findViewById(R.id.imageButtonPolizia);
                btn.setImageResource(R.drawable.ic_launcher_policia2);

                Intent i = new Intent(getApplicationContext(), ActivityPolizia.class);
                startActivity(i);

            }
        });


    }


    // FUNZIONE MUSEO

    private  void configureImageButton3() {
        ImageButton btn = (ImageButton) findViewById(R.id.imageButtonMuseo);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "MUSEI", Toast.LENGTH_LONG).show();

                // cambia immagine seconda immagine
                ImageButton btn = (ImageButton) findViewById(R.id.imageButtonMuseo);
                btn.setImageResource(R.drawable.ic_launcher_museo2);

                Intent i = new Intent(getApplicationContext(), ActivityMuseo.class);
                startActivity(i);

            }
        });


    }

    // FUNZIONE RESTAURANTE

    private  void configureImageButton4() {
        ImageButton btn = (ImageButton) findViewById(R.id.imageButtonRestaurante);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "RESTAURANTI", Toast.LENGTH_LONG).show();

                // cambia immagine seconda immagine
                ImageButton btn = (ImageButton) findViewById(R.id.imageButtonRestaurante);
                btn.setImageResource(R.drawable.ic_launcher_restaurante2);

                Intent i = new Intent(getApplicationContext(), ActivityMuseo.class);
                startActivity(i);

            }
        });


    }

    // FUNZIONE SUPERMERCATO

    private  void configureImageButton5() {
        ImageButton btn = (ImageButton) findViewById(R.id.imageButtonSupermercato);
        btn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this, "SUPERMERCATI", Toast.LENGTH_LONG).show();

                // cambia immagine seconda immagine
                ImageButton btn = (ImageButton) findViewById(R.id.imageButtonSupermercato);
                btn.setImageResource(R.drawable.ic_launcher_supermercato2);

                Intent i = new Intent(getApplicationContext(), ActivityMuseo.class);
                startActivity(i);

            }
        });

    }







}// fine classe


grazie dall'aiuto