У меня есть база данных SQLite, и я хочу отобразить каждый ROW / Campsite, используя ListView.
Метод DBHandler для возврата ArrayList of Campsites:
public ArrayList<Campsite> getAllCampsites() {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_CAMPSITES, null);
ArrayList<Campsite> campsites = new ArrayList<>();
Campsite campsite;
if (cursor.getCount() > 0) {
for (int i = 0; i < cursor.getCount(); i++) {
cursor.moveToNext();
campsite = new Campsite();
campsite.setName(cursor.getString(1));
campsite.setCity(cursor.getString(2));
campsite.setFeature(cursor.getString(3));
campsite.setFavorite(cursor.getString(4));
campsite.setRating(cursor.getInt(5));
campsite.setLatitude(cursor.getDouble(6));
campsite.setLongitude(cursor.getDouble(7));
campsites.add(campsite);
}
}
cursor.close();
db.close();
return campsites;
}
У меня есть действие, которое называется Browseкоторый имеет ListView в файле макета.У меня также есть browse_row_layout с макетом для одной строки / места для лагеря.
Так что в Browse.java мне нужно создать адаптер для отображения каждого места для лагеря.Примечание: я показываю только 3 определенных столбца (имя, город, объект) в виде списка
Итак, у меня есть файл макета activity_browse, в котором есть действительный элемент ListView и browse_row_layout, который представляет 1 строку базы данных иимеет TextViews только для 3 столбцов.
Что у меня есть:
import android.os.Bundle;
import android.widget.ListView;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
public class Browse extends AppCompatActivity {
ListView lvCampsites;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_browse);
lvCampsites= findViewById(R.id.lvCampsites);
DatabaseHandler db = new DatabaseHandler(this);
ArrayList<Campsite> campsites = db.getAllCampsites();
}
}
TLDR: как создать адаптер для отображения каждого лагеря изсписок кемпинга, который имеет каждую строку базы данных, используя ListView.