Autore Topic: Aiuto stampa immagine Db  (Letto 466 volte)

Offline dengel

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Aiuto stampa immagine Db
« il: 16 Aprile 2012, 17:07:06 CEST »
0
Salve a tutti..partendo dalla guida presa da questo forum vorrei mostrare nella listview oltre agli elementi del db, anche un immagine in un altra colonna(non presente nel database ma fissa per tutti).

Codice (Java): [Seleziona]
public class MyDatabase {  

        SQLiteDatabase mDb;
        DbHelper mDbHelper;
        Context mContext;
        private static final String DB_NAME="tutorialdb";//nome del db
        private static final int DB_VERSION=1; //numero di versione del nostro db
       
        public MyDatabase(Context ctx){
                mContext=ctx;
                mDbHelper=new DbHelper(ctx, DB_NAME, null, DB_VERSION);
        }
       
        public void open(){  //il database su cui agiamo è leggibile/scrivibile
                mDb=mDbHelper.getWritableDatabase();
               
        }
       
        public void close(){ //chiudiamo il database su cui agiamo
                mDb.close();
        }
       
       
       
        public void insertProduct(String name,int price){ //metodo per inserire i dati
                ContentValues cv=new ContentValues();
                cv.put(ProductsMetaData.PRODUCT_NAME_KEY, name);
                mDb.insert(ProductsMetaData.PRODUCTS_TABLE, null, cv);
        }
       
        public Cursor fetchProducts(){ //metodo per fare la query di tutti i dati
         return mDb.rawQuery("select * from " + ProductsMetaData.PRODUCTS_TABLE , null);               
        }
       
        static class ProductsMetaData {  // i metadati della tabella, accessibili ovunque
                static final String PRODUCTS_TABLE = "tabella";
                static final String ID = "_id";
                static final String PRODUCT_NAME_KEY = "nome";
        }

        private static final String PRODUCTS_TABLE_CREATE = "CREATE TABLE IF NOT EXISTS "  //codice sql di creazione della tabella
                        + ProductsMetaData.PRODUCTS_TABLE + " ("
                        + ProductsMetaData.ID+ " integer primary key autoincrement, "
                        + ProductsMetaData.PRODUCT_NAME_KEY + " text not null);";

        private class DbHelper extends SQLiteOpenHelper { //classe che ci aiuta nella creazione del db

                public DbHelper(Context context, String name, CursorFactory factory,int version) {
                        super(context, name, factory, version);
                }

                @Override
                public void onCreate(SQLiteDatabase _db) {
                        _db.execSQL(PRODUCTS_TABLE_CREATE);
                }
        }      
}


Codice (Java): [Seleziona]
public class Demo extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);                
       
        ListView productsLv=(ListView)findViewById(R.id.productsLv);
       
        MyDatabase db=new MyDatabase(getApplicationContext());
        db.open();  //apriamo il db
       
       
        if(db.fetchProducts().getCount()==0){//inserimento dati
       
                db.insertProduct("Uno",0);
       
        }
       
        Cursor c=db.fetchProducts(); // query
        startManagingCursor(c);

        SimpleCursorAdapter adapter=new SimpleCursorAdapter( //semplice adapter per i cursor
                        this,
                        R.layout.product, //il layout di ogni riga/prodotto
                        c,
                        new String[]{MyDatabase.ProductsMetaData.PRODUCT_NAME_KEY},//questi colonne
                        new int[]{R.id.nameTv});//in queste views
 
        productsLv.setAdapter(adapter); //la listview ha questo adapter
       
    }
}

main.xml

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#FFFFFF">
       
        <ListView
                android:id="@+id/productsLv"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:cacheColorHint="#00000000"></ListView>
</LinearLayout>


Singola riga

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="horizontal"
        android:weightSum="10"
        >

        <TextView              
                android:id="@+id/nameTv"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="8"
                android:textSize="15dp"
                android:textStyle="bold"
                android:textColor="#000000">
        </TextView>
       
        <ImageView
        android:id="@+id/Star"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="left"
   android:background="@android:color/white"
   />
       
</LinearLayout>

Come posso modificare l' adapter che mi mostra un immagine fissa nella 2 colonna?
« Ultima modifica: 16 Aprile 2012, 17:09:05 CEST da dengel »

Offline dengel

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
Re:Aiuto stampa immagine Db
« Risposta #1 il: 16 Aprile 2012, 20:03:50 CEST »
0
Nessuno puo' aiutarmi ?

Offline Gigiuz

  • Utente normale
  • ***
  • Post: 187
  • Respect: +23
    • Google+
    • gigiuzzo81
    • Gigiuz81
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Note III
  • Play Store ID:
    GGXSoft
  • Sistema operativo:
    Windows 7 64bit, OS X (virtualized), Ubuntu
Re:Aiuto stampa immagine Db
« Risposta #2 il: 17 Aprile 2012, 04:20:33 CEST »
0
Credo tu debba crearti un adapter personalizzato per poter fare questo genere di cose...  :-\

Puoi dare un'occhiata a questo ottimo tutorial per cominciare: [medio] ListView con layout personalizzato tramite un SimpleAdapter - Android Developers Italia
Hai bisogno di implementare un sistema di "codici seriali di sblocco" nella tua applicazione? Dai un'occhiata alla mia libreria: RemoteUnlocker