sql >> Databasteknik >  >> RDS >> SQLite

Android ListView:hur undviker man databasfråga i bindView()? Behöver hämta en till många relationsdata

Fick precis en idé:använd en annan markörladdare i listobjektet. Så det här kommer att vara som en tvånivås markörladdare. Jag lägger upp mina resultat senare.

Redigera :

Den föreslagna idén bör vara det rätta sättet att hantera frågan. Så min kod är omstrukturerad så här:

// In the list view activity:

    @Override
    public void bindView(View view, Context context, Cursor cursor) {

        AlbumListItem albumListItem = (AlbumListItem)view;

        albumListItem.prepareView(getLoaderManager(), cursor);
    }

// AlbumListItem is a class that has a cursor loader to query photos:
public class AlbumListItem extends RelativeLayout implements LoaderManager.LoaderCallbacks<Cursor>{


public void prepareView(LoaderManager loaderManager, Cursor albumCursor){

    albumId = albumCursor.getLong(albumCursor.getColumnIndex(AlbumsColumns._ID));
    // Other init stuff

    loaderManager.initLoader(UNIQUE_LOADER_ID, null, this);
}

@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {

    // Here is the async query part.

    return new CursorLoader(context, PhotosColumns.CONTENT_URI, null, PhotosColumns.ALBUM_ID + " = ?", new String[]{Long.toString(albumId)}, null);
}

}



  1. Hur man lägger till AM/PM till ett tid- eller datumtidsvärde i MariaDB

  2. SQL Server UNION - Vilket är standardbeteendet ORDER BY Behavior

  3. hur sammanfogar man mer än två kolumner i plsql-utvecklaren?

  4. Hur undviker man flera funktionsevaler med syntaxen (func()).* i en SQL-fråga?