SimpleCursorAdapter come mostrare un'image?

Sto facendo un'applicazione di ricette android in cui utilizzo un database. Nel database c'è una colonna denominata "" immagini, where immagino il nome del file dell'image della ricetta in cui memorizzo nella cartella disegnabile. Ora voglio fare un elenco con le ricette, mostrando: 1) il titolo della ricetta 2) una breve descrizione e 3) un'image della ricetta Per fare ciò uso un Simplecursoradaptor.

Il mio problema è che non riesco a mostrare l'image.

  • Come rimuovere l'image di background standard di ImageButton?
  • Come posso build il mio personale store di applicazioni Android?
  • ActionBarSherlock & HoloEverywhere - Forzare il trabocco?
  • Cambiare il colore di TextView
  • Come sostituire le risorse delle stringhe con Gradley di Android
  • IllegalStateException quando si sostituisce un frammento
  • Voglio leggere il nome del file dalla colonna "immagini" e quindi impostare l'image al mio immaginario (R.imageview1)

    Ecco il mio codice fino ad ora:

    public class RecipesMainActivity extends Activity { public static final String ROW_ID = "row_id"; //Intent extra key private ListView esodaListView; // the ListActivity's ListView private SimpleCursorAdapter esodaAdapter; // adapter for ListView DatabaseConnector databaseConnector = new DatabaseConnector(RecipesMainActivity.this); // called when the activity is first created @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recipes_main); esodaListView = (ListView)findViewById(R.id.esodaList); esodaListView.setOnItemClickListener(viewEsodaListener); databaseConnector.open(); // map each esoda to a TextView in the ListView layout // The desired columns to be bound String[] from = new String[] {"title","ingredients","image"}; // built an String arrays named "from" //The XML defined views which the data will be bound to int[] to = new int[] { R.id.esodaTextView, R.id.amountTextView, R.id.imageView1}; // built an int arrays named "to" // EsodaMainActivity.this = The context in which the ListView is running // R.layout.esoda_list_item = Id of the layout that is used to display each item in ListView // null = // from = String arrays containing the column names to display // to = Int arrays containing the column names to display esodaAdapter = new SimpleCursorAdapter (this, R.layout.recipe_list_item, null, from, to); esodaListView.setAdapter(esodaAdapter); // set esodaView's adapter } // end of onCreate method @Override protected void onResume() { super.onResume(); // call super's onResume method // create new GetEsodaTask and execute it // GetEsodaTask is an AsyncTask object new GetEsodaTask().execute((Object[]) null); } // end of onResume method // onStop method is executed when the Activity is no longer visible to the user @Override protected void onStop() { Cursor cursor= esodaAdapter.getCursor(); // gets current cursor from esodaAdapter if (cursor != null) cursor.deactivate(); // deactivate cursor esodaAdapter.changeCursor(null); // adapter now has no cursor (removes the cursor from the CursorAdapter) super.onStop(); } // end of onStop method // this class performs db query outside the GUI private class GetEsodaTask extends AsyncTask<Object, Object, Cursor> { // we create a new DatabaseConnector obj // EsodaMainActivity.this = Context DatabaseConnector databaseConnector = new DatabaseConnector(RecipesMainActivity.this); // perform the db access @Override protected Cursor doInBackground(Object... params) { databaseConnector.open(); // get a cursor containing call esoda return databaseConnector.getAllEsoda(); // the cursor returned by getAllContacts() is passed to method onPostExecute() } // end of doInBackground method // here we use the cursor returned from the doInBackground() method @Override protected void onPostExecute(Cursor result) { esodaAdapter.changeCursor(result); // set the adapter's Cursor databaseConnector.close(); } // end of onPostExecute() method } // end of GetEsodaTask class 

    Ho cercato molto online ma non ho potuto trovare qualcosa che potrebbe aiutarmi.

    Posso impostare un'image in un'image con simplecursoradaptor o no?

    Devo fare un'adattatore cursore personalizzato? E se devo fare un modo personalizzato come posso farlo?

  • android - domanda sulla modalità singleTask
  • Ottieni informazioni su AutocompleteTextView dal conseguente AutoCompleteTextView $ DropDownListView
  • Stringa random dall'elenco delle stringhe di stringhe
  • Perché il supporto HTML5 Web Workers è stato rimosso dal browser Android nelle versioni 2.2 e successive?
  • androidPlot bordo nero
  • Android: C'è un modo per get altitudine a parte Location.getAltitude ()? (Ho sentito usare il sensore)
  • One Solution collect form web for “SimpleCursorAdapter come mostrare un'image?”

    È necessario impostare il ViewBinder della scheda per impostare l'image di ImageView sul valore ricevuto dal DB.

      esodaAdapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() { @Override public boolean setViewValue (View view, Cursor cursor, int columnIndex){ if (view.getId() == R.id.imageView1) { ImageView IV=(ImageView) view; int resID = getApplicationContext().getResources().getIdentifier(cursor.getString(columnIndex), "drawable", getApplicationContext().getPackageName()); IV.setImageDrawable(getApplicationContext().getResources().getDrawable(resID)); return true; } return false; } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.