位置:首页> 开发 > 数据存储 > 浏览文章

Android中使用CursorLoader进行异步数据库操作[页4]

2023-08-23
javapublic class MyActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> {

    private static final int LOADER_ID = 1;

    private ListView listView;
    private SimpleCursorAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);

        listView = findViewById(R.id.list_view);
        adapter = new SimpleCursorAdapter(this, R.layout.list_item, null, new String[]{MyDatabaseHelper.COLUMN_NAME, MyDatabaseHelper.COLUMN_DESCRIPTION}, new int[]{R.id.name, R.id.description}, 0);
        listView.setAdapter(adapter);

        getSupportLoaderManager().initLoader(LOADER_ID, null, this);
    }

    @NonNull
    @Override
    public Loader<Cursor> onCreateLoader(int id, @Nullable Bundle args) {
        return new CursorLoader(this, MyContentProvider.CONTENT_URI, new String[]{MyDatabaseHelper.COLUMN_NAME, MyDatabaseHelper.COLUMN_DESCRIPTION}, null, null, null);
    }

    @Override
    public void onLoadFinished(@NonNull Loader<Cursor> loader, Cursor data) {
        adapter.swapCursor(data);
    }

    @Override
    public void onLoaderReset(@NonNull Loader<Cursor> loader) {
        adapter.swapCursor(null);
    }
}

在上面的代码中,首先创建一个ListView和一个SimpleCursorAdapter对象,用于显示从Content Provider中加载的数据。然后,在onCreate()方法中,通过调用getSupportLoaderManager().initLoader()方法来初始化CursorLoader。

首页 上一页 1 2 3 45 6 下一页 尾页
下一篇:

相关阅读

热门推荐