SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Android ListView:bagaimana cara menghindari kueri basis data di bindView ()? Perlu mengambil satu ke banyak data hubungan

Baru saja mendapat ide:gunakan pemuat kursor lain di dalam item daftar. Jadi ini akan seperti pemuat kursor dua tingkat. Saya akan memposting hasil saya nanti.

Sunting :

Ide yang diajukan harus menjadi cara yang tepat untuk menangani masalah tersebut. Jadi kode saya di-refactored seperti ini:

// 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Room API - Bagaimana cara mengambil id entitas yang baru saja dimasukkan?

  2. Bagaimana SQLite Ifnull() Bekerja

  3. Cara Membuat Tabel Hanya jika Tidak Ada di SQLite

  4. Bagaimana cara menyimpan dan mengambil array byte (data gambar) ke dan dari database SQLite?

  5. Membuat Aplikasi Rekomendasi Film Django Menggunakan Indeks Jaccard