我正在開發一個Android應用程序,其目的是在屏幕上顯示用戶字典中顯示的內容列表。在Android API級別23上訪問UserDictionary內容提供者
問題是,當我在Android API Level 23 Content Provider中編譯和運行應用程序時,返回一個沒有任何項目的光標,沒有任何數據。
這很奇怪,因爲API的前面的23(22,21,19,...)應用程序正常運行並在ListView中顯示數據。
下面是我的活動代碼:
import android.app.LoaderManager;
import android.content.CursorLoader;
import android.content.Loader;
import android.database.Cursor;
import android.provider.UserDictionary;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity implements LoaderManager.LoaderCallbacks<Cursor> {
private ListView listView;
private SimpleCursorAdapter adapter;
private static final String[] COLUMNS = {
UserDictionary.Words.WORD,
UserDictionary.Words._ID,
UserDictionary.Words.LOCALE
};
private static final int[] LIST_ITEM_VIEWS = {
R.id.name,
R.id.id_word,
R.id.locale
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView) findViewById(R.id.list);
adapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.item_list, null, COLUMNS, LIST_ITEM_VIEWS, 0);
listView.setAdapter(adapter);
getLoaderManager().initLoader(0, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
return new CursorLoader(getApplicationContext(), UserDictionary.Words.CONTENT_URI, COLUMNS,
null, null, UserDictionary.Words.WORD);
}
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
adapter.swapCursor(data);
}
@Override
public void onLoaderReset(Loader<Cursor> loader) {
adapter.swapCursor(null);
}
}
內'onLoadFinished'調用'DatabaseUtils#dumpCursor',你怎麼看? – pskink
當我使用DatabaseUtils.dumpCursor()時,我得到以下回報: 關於API級別23 =>「System.out:>>>>> cursor android.contact。$ @ b465803」>>>>>光標傾倒機器人。內容。$ CursorWrapperInner @ 1a8ca936 ContentResolver的 0 { 字= bluu _ ID = 2 語言環境= NULL } 1 { 字= blooo _id = 1 locale = en_US } <<<<<「 當我使用Cursor對象的方法getCount()時,在API級別23上,同樣返回零。 –
所以請檢查您的自定義ContentProvider「查詢」方法爲什麼它返回空遊標 – pskink