0

有没有办法通过 CursorLoader 使用 SimpleCursorAdapter 以便我可以使 TextView 与我的数据库更改保持同步?我有一个我想维持的帐户余额,而不必自己管理每一项更改。我的 TextView 不在任何有适配器的地方。它更像是一面旗帜。下面代码的问题是 setViewValue 从未被调用,我假设适配器尚未设置为任何内容。任何帮助或建议将不胜感激。谢谢。

        mAdapter = new SimpleCursorAdapter(this, 
            R.layout.todays_bal_header, 
            null,
            new String[] { TransactionTable.TRANS_AMOUNT, TransactionTable.TRANS_ID },
            new int[] { R.id.todays_balance }, 
            0 );

    mAdapter.setViewBinder(new ViewBinder() {
        public boolean setViewValue(View aView, Cursor c, int aColumnIndex) {

            if (aView.getId() == R.id.todays_balance) {
                                    //Calculate value
                TextView textView = (TextView) aView;
                textView.setText(Integer.toString(value));
                return true;
            }

            return false;
        }
    });
    getSupportLoaderManager().initLoader(URL_LOADER, null, this);

这是我的回调

@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor cursor) {
    mAdapter.changeCursor(cursor);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
    mAdapter.changeCursor(null);
}
4

1 回答 1

1

ContentResolver.registerContentObserver(Uri, boolean, ContentObserver) 在您的代码(活动/视图)和 ContentResolver.notifyChange(Uri, ContentObserver)ContentProvider 中使用。

于 2013-09-02T20:38:39.717 回答