0

J'utilise un SimpleCursorAdapter pour remplir un Spinner avec la colonne de nom d'une base de données.Afficher les détails de la base de données pour l'élément sélectionné dans spinner

Adaptateur:

spinnerAdapter = new SimpleCursorAdapter(
     this, 
     android.R.layout.simple_spinner_item, 
     null, 
     new String[] {SupplierEntry.COLUMN_SUPPLIER_NAME}, 
     new int[] {android.R.id.text1}, 
     0); 
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_item); 
mSuppliersSpinner.setAdapter(spinnerAdapter); 

getLoaderManager().initLoader(SUPPLIERS_LOADER, null, this); 

curseur Loader:

@Override 
    public Loader<Cursor> onCreateLoader(int i, Bundle bundle) { 
     // Define a projection that specifies the columns from the table we care about. 
     String[] projection = { 
       SupplierEntry._ID, 
       SupplierEntry.COLUMN_SUPPLIER_NAME}; 

     // This loader will execute the ContentProvider's query method on a background thread 
     return new CursorLoader(this,  // Parent activity context 
       SupplierEntry.CONTENT_URI, // Provider content URI to query 
       projection,     // Columns to include in the resulting Cursor 
       null,      // No selection clause 
       null,      // No selection arguments 
       null);      // Default sort order 
    } 

Comment pourrais-je, lors de la sélection d'un élément dans la fileuse (la colonne de nom), afficher tous les autres détails dans quelques textviews?

Répondre

1

Commencez par définir un écouteur sur le spinner afin d'obtenir un rappel lorsqu'un élément est sélectionné.

mSuppliersSpinner.setOnItemSelectedListener(this); 

je l'offre « ceci » comme auditeur parce que mon Fragment/activité implémente l'interface, mais vous pouvez écrire un entre les supports aussi bien. Vous pouvez mettre en œuvre cette méthode:

@Override 
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) 
{ 
    //Start another cursorloader to get the details 
} 

Basé sur l'ID ou la position, vous savez que l'entrée a été sélectionnée. À ce stade, vous pouvez démarrer un autre CursorLoader (avec une sélection pour obtenir uniquement les détails de cette entrée particulière). Lorsque vous recevez un rappel dans onLoadFinished, vous pouvez afficher les détails dans TextViews.