2013-10-17 7 views
1

Je veux voir avec le simplecursoradapter et le ListView intégré dans une liste de mes contacts indiquant leur nom, e-mail et de l'image (tous enregistrés dans sqlite)android simplecursoradapter avec imageView

ayant ce code (notez que i » m ne pas utiliser le curseur, j'utilise null beacuse Je suis goig de fournir au plus tard le curseur):

private CursorAdapter contactAdapter; 
    @Override 
     public void onCreate(Bundle savedInstanceState) 
     { 
      super.onCreate(savedInstanceState); 
      contactList = getListView(); 
      contactList.setOnItemClickListener(viewContactListener);  


      String[] from = new String[] { "name","email","image" }; 
      int[] to = new int[] { R.id.contactTextView,R.id.emailTextView2,R.id.imageView1};//imageView1 is a ImageView 
      contactAdapter = new SimpleCursorAdapter(
      MyFirstActivity.this, R.layout.contact_list_item, null, from, to); 

      setListAdapter(contactAdapter); 



     } 

puis:

@Override 
    protected void onResume() 
    { 
     super.onResume(); 
     new StartPopulate().execute((Object[]) null); 
    } 


private class StartPopulate extends AsyncTask<Object, Object, Cursor> 
    { 
     MyDatabaseConnector myDatabaseConnector = 
     new MyDatabaseConnector(myActivity.this); 

     // perform the database access 
     @Override 
     protected Cursor doInBackground(Object... params) 
     { 
     myDatabaseConnector.open(); 

     return databaseConnector.getAllContacts(); //it is a cursor where I have the fields which I want to return 
     } 


     @Override 
     protected void onPostExecute(Cursor result) 
     { 
     contactAdapter.changeCursor(result); 
     myDatabaseConnector.close(); 
     } 
    } 

si vous notitce je fournir le curseur à l'intérieur ao nPostExecute avec changeCursor, pas au début, donc mes questions sont: 1.-Comment puis-je utiliser viewBinder de cette façon? Images in SimpleCursorAdapter Je veux ajouter une image à l'intérieur (int [] pour = new int [] {R.id.contactTextView, R.id.emailTextView2, R.id.imageView1} // imageView1 est un ImageView) donc dans ce comme je peux voir le nom, e-mail, l'image

ma base de données également les éléments suivants sont: champs:

"CREATE TABLE wholeContacts" + 
      "(_id integer primary key autoincrement," + 
      "name TEXT, email TEXT, + 
      "image BLOB);"; 

2.-I'ts une bonne pratique d'utiliser le SQLite pour enregistrer des images (dans la base de données) si peut contenir près de 5000 disques, mais les images sont de 2.6kb (très petites images) ????

grâce

Répondre

0

utilisation BitmapFactory.decodeByteArray où le tableau d'octets est tiré de Cursor.getBlob()

Questions connexes