0

Я только учусь провайдерами контента и резольверы в 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(); 
     } 


    } 
+0

ПРИМЕЧАНИЕ: я даже очистил словарь и перезапустил телефон, курсор все еще показывает несуществующий последний элемент, который он ранее показывал –

ответ

1

Ваш код работает отлично на моем телефоне, за исключением того, что значение частоты по умолчанию равно 250, хотя я просто добавил слово. Попробуйте протестировать на другом телефоне.

+0

О, хорошо, я использую HTC, вы думаете, что производители иногда меняют вещи, например, например, очень отличается на samsung, чем на складе, может ли это быть причиной? –

+1

Я не могу сказать. Я использовал Huawei. Я очистил словарь, добавил слова, удалил слова и ответил на каждое действие только мне пришлось удалить приложение из заднего стека и начать его снова между действиями. – Lema

 Смежные вопросы

  • Нет связанных вопросов^_^