Я только учусь провайдерами контента и резольверы в Android и пытаюсь сделать простое приложение, чтобы распечатать детали UserDataDictionary, Но хотя у меня есть много пункта счетчик курсора отображается как и печатает только один элемент, Я пошел и очистил все слова из словаря, но до сих пор он показывает один и печатает, что один пункт, я только учусь андроидом, любая помощь будет оценен, см OnCreate (0 метод нижеКурсор получает последний элемент в UserDataDictionary?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Get and display the data dictionary
TextView dictionaryTextView=(TextView)findViewById(R.id.dictionary_text_view);
ContentResolver resolver=getContentResolver();
//get cursor containing all words
Cursor cursor = resolver.query(UserDictionary.Words.CONTENT_URI, null, null, null, null);
String userDictString;
try {
//get total words
int numWords = cursor.getCount();
//get all column Indexes
int columnIndex = cursor.getColumnIndex(UserDictionary.Words._ID);
int columnWords = cursor.getColumnIndex(UserDictionary.Words.WORD);
int columnFrequency = cursor.getColumnIndex(UserDictionary.Words.FREQUENCY);
userDictString=("The User dictionary Contains\n" +cursor.getCount()+" words\n"+UserDictionary.Words._ID +"\t\t"+UserDictionary.Words.WORD +"\t"+UserDictionary.Words.FREQUENCY+"\n");
Log.d("Word",userDictString);
dictionaryTextView.setText(userDictString);
while (cursor.moveToNext())//zero if end of list in cursor(no more rows)
{
Log.d("Word",cursor.getString(columnWords));
int id = cursor.getInt(columnIndex);
int frequency = cursor.getInt(columnFrequency);
String word = cursor.getString(columnWords);
dictionaryTextView.append(("\n" + id + " - " + frequency + " - " + word));
}
}
catch (Exception e)
{
e.printStackTrace();
}
finally {
cursor.close();
}
}
ПРИМЕЧАНИЕ: я даже очистил словарь и перезапустил телефон, курсор все еще показывает несуществующий последний элемент, который он ранее показывал –