SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Android ListView:làm thế nào để tránh truy vấn cơ sở dữ liệu trong bindView ()? Cần tìm nạp một đến nhiều dữ liệu mối quan hệ

Chỉ có một ý tưởng:sử dụng một trình tải con trỏ khác bên trong mục danh sách. Vì vậy, điều này sẽ giống như bộ tải con trỏ hai cấp. Tôi sẽ đăng kết quả của mình sau.

Chỉnh sửa :

Ý tưởng được đề xuất phải là cách xử lý vấn đề đúng đắn. Vì vậy, mã của tôi được cấu trúc lại như thế này:

// 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. Cách tạo bảng Chỉ khi nó không tồn tại trong SQLite

  2. cách đặt cơ sở dữ liệu và đọc cơ sở dữ liệu từ android thư mục tài sản được tạo và xuất trong sqllite

  3. SQLite - Tạo cơ sở dữ liệu

  4. cách triển khai kế thừa bảng trong GreenDao

  5. PowerManager.PARTIAL_WAKE_LOCK android