Я получил его, чтобы он показывал некоторые данные, полученные из базы данных в списке. Он отображает 10 строк из моего db, который имеет только 10 строк, но проблема в том, что он показывает это как [email protected]
. Почему это так и как я могу это исправить? Так что проблема в действии LocationHistory.java. Он показывает, что странные имена пакетов на моем дисплее.ListView ArrayAdapter не отображает правильные данные
activity_location_history.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
tools:context=".LocationHistory">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@android:id/list"
android:layout_gravity="center_horizontal" />
</LinearLayout>
LocationsDataSource.java:
// some code
private static final String[] allColumns = {
LocationsDBOpenHelper.COLUMN_ID,
LocationsDBOpenHelper.COLUMN_LATITUDE,
LocationsDBOpenHelper.COLUMN_LONGITUDE,
LocationsDBOpenHelper.COLUMN_TIME};
// some code
public List<LocationData> findAll() {
List<LocationData> locations = new ArrayList<>();
Cursor cursor = database.query(LocationsDBOpenHelper.TABLE_LOCATIONS, allColumns, null, null, null, null, null);
Log.i(LOGTAG, "Returned " + cursor.getCount() + " rows");
if (cursor.getCount() > 0) {
while (cursor.moveToNext()) {
LocationData locationdata = new LocationData();
locationdata.setId(cursor.getLong(cursor.getColumnIndex(LocationsDBOpenHelper.COLUMN_ID)));
Log.i(LOGTAG, "COLUMN_ID " + locationdata.getId());
locationdata.setLatitude(cursor.getString(cursor.getColumnIndex(LocationsDBOpenHelper.COLUMN_LATITUDE)));
Log.i(LOGTAG, "COLUMN_LATITUDE " + locationdata.getLatitude());
locationdata.setLongitude(cursor.getString(cursor.getColumnIndex(LocationsDBOpenHelper.COLUMN_LONGITUDE)));
Log.i(LOGTAG, "COLUMN_LONGITUDE " + locationdata.getLongitude());
locationdata.setTime(cursor.getString(cursor.getColumnIndex(LocationsDBOpenHelper.COLUMN_TIME)));
Log.i(LOGTAG, "COLUMN_TIME " + locationdata.getTime());
locations.add(locationdata);
Log.i(LOGTAG, "locationdata " + locationdata.toString());
Log.i(LOGTAG, "locations " + locations.toString());
}
}
return locations;
}
LocationHistory.java:
// some code
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_location_history);
datasource = new LocationsDataSource(this);
datasource.open();
List<LocationData> locationdata = datasource.findAll();
if (locationdata.size() == 0) {
locationdata = datasource.findAll();
}
ArrayAdapter<LocationData> adapter = new ArrayAdapter<LocationData>(this,
android.R.layout.simple_list_item_1, locationdata);
setListAdapter(adapter);
}
// some code
LocationData.java:
public class LocationData {
private long id;
private String latitude;
private String longitude;
private String time;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getLatitude() {
return latitude;
}
public void setLatitude(String latitude) {
this.latitude = latitude;
}
public String getLongitude() {
return longitude;
}
public void setLongitude(String longitude) {
this.longitude = longitude;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
}
Logcat:
09-18 00:16:12.614 25181-25181/com.example.somename I/EXPLORECA﹕ COLUMN_ID 1
09-18 00:16:12.614 25181-25181/com. example.somename I/EXPLORECA﹕ COLUMN_LATITUDE 21.36654189
09-18 00:16:12.614 25181-25181/com. example.somename I/EXPLORECA﹕ COLUMN_LONGITUDE 6.945669
09-18 00:16:12.614 25181-25181/com. example.somename I/EXPLORECA﹕ COLUMN_TIME 12:10:34 AM
09-18 00:16:12.614 25181-25181/com. example.somename I/EXPLORECA﹕ locationdata com. [email protected]
09-18 00:16:12.614 25181-25181/com. example.somename I/EXPLORECA﹕ locations [com. [email protected]]
Эй, спасибо за ответ. Log.i's, который я разместил там после этого, показал активность этих странных имен пакетов. Я поставил его там, чтобы увидеть, будут ли они показывать какие-либо хорошие данные вообще. Таким образом, без Log.i, он все еще показывает эти странные имена пакетов в активности. – MOTIVECODEX