Intereting Posts

ArrayAdapter: вы должны указать идентификатор ресурса для текстового просмотра

У меня есть приложение, в котором я хочу заполнить ListView данными из базы данных SQLite … в этой части у меня есть проблема с arrayAdapter …

Вот мой код метода для заполнения listView:

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_list); PetListView = (ListView)findViewById(R.id.list); MyDatabaseHelper db = new MyDatabaseHelper(this); String [] items = new String[100]; List<Pet> pets = db.getAllPets(); for (int i = 0; i < 10; i++) { items[i] = pets.get(i).getName(); } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, R.id.textView1list, items); PetListView.setAdapter(adapter); } 

И это метод, реализованный в моем помощнике базы данных:

 public List<Pet> getAllPets() { List<Pet> petList = new ArrayList<Pet>(); String selectQuery = "SELECT * FROM " + TABLE_PETS; SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(selectQuery, null); if (cursor.moveToFirst()) { do { Pet pet = new Pet(); pet.setID(Integer.parseInt(cursor.getString(0))); pet.setName(cursor.getString(1)); pet.setAge(cursor.getString(2)); petList.add(pet); } while (cursor.moveToNext()); } cursor.close(); return petList; } 

Почему textView? Я использую ListView …

Можете ли вы кто-нибудь сказать мне каким-либо другим способом, как заполнить listView данными (именами) из SQLite?

использование

  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, android.R.id.text1, items); 

Instad of

  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.activity_list_item, R.id.textView1list, items); 

Используйте android.R.id.text1 как идентификатор TextView, если вы используете макет Activity_list_item по умолчанию для ListView