我嘗試將兩個字符串保存到一個sqlite數據庫。我想我已經用正確的方式創建了所有的東西,但是如果我嘗試用保存到db的項目來填充listview,那麼listview中沒有顯示任何項目。如何打印以登錄android? (想知道,如果我填寫一個分貝)
活動(在這裏,我嘗試添加字符串到DB)擴展SQLiteOpenHelper
private static final String DATABASE_NAME = "verlaufRechnungen.db";
private static final int DATABASE_VERSION = 1;
private static final String TABLE_CREATE_VERLAUF = ""
+ "create table Verlauf("
+" ID integer primary key autoincrement, "
+ "SCHWIERIGKEIT text, "
+ "DATUM text)";
public MySQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase database) {
// TODO Auto-generated method stub
database.execSQL(TABLE_CREATE_VERLAUF);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
Log.w(MySQLiteHelper.class.getName(), "Upgrading database, which destroy all old data");
db.execSQL("DROP TABLE IF EXISTS SCANITEM");
onCreate(db);
}
}
活動格式化進入
public class Ende extends Activity implements android.view.View.OnClickListener {
private String datum = "07.05.2014";
private String schwierigkeit = "Anfänger";
private VerlaufDataSource datasource;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.training_beendet);
// DB
datasource = new VerlaufDataSource(this);
try {
datasource.open();
datasource.createEntry(schwierigkeit, datum);
datasource.close();
} catch (Exception e) {
Toast.makeText(this,e.toString(), Toast.LENGTH_LONG).show();
}
}
活動:
public class Entry {
private long id;
private String schwierigkeit;
private String datum;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getSchwierigkeit() {
return schwierigkeit;
}
public void setSchwierigkeit(String schwierigkeit) {
this.schwierigkeit = schwierigkeit;
}
public String getDatum() {
return datum;
}
public void setDatum(String datum) {
this.datum = datum;
}
@Override
public String toString(){
return String.format("Training: %s %s " , schwierigkeit, datum);
}
}
活動的光標:
public class VerlaufDataSource {
private SQLiteDatabase database;
private MySQLiteHelper dbhelper;
private String[] allColumns = {
"ID", "SCHWIERIGKEIT", "DATUM" };
public VerlaufDataSource(Context context) {
dbhelper = new MySQLiteHelper(context);
}
public void open() throws SQLException {
database = dbhelper.getWritableDatabase();
}
public void close() {
dbhelper.close();
}
public Entry createEntry(String schwierigkeit, String datum) {
ContentValues values = new ContentValues();
values.put("SCHWIERIGKEIT", schwierigkeit);
values.put("DATUM", datum);
long insertId = database.insert("Verlauf", null, values);
Cursor cursor = database.query("VERLAUF", allColumns, "ID =" + insertId, null, null, null,null);
cursor.moveToFirst();
return cursorToEntry(cursor);
}
public List<Entry> getAllEntries() {
List<Entry> EntriesList = new ArrayList<Entry>();
EntriesList = new ArrayList<Entry>();
Cursor cursor = database.query("", allColumns, null, null, null, null, null);
cursor.moveToFirst();
if(cursor.getCount()==0) return EntriesList;
while (cursor.isAfterLast() == false) {
Entry entry = cursorToEntry(cursor);
EntriesList.add(entry);
cursor.moveToNext();
}
cursor.close();
return EntriesList;
}
private Entry cursorToEntry(Cursor cursor) {
Entry entry = new Entry();
entry.setId(cursor.getLong(0));
entry.setSchwierigkeit(cursor.getString(1));
entry.setDatum(cursor.getString(2));
return entry;
}
}
最後,活動從保存的數據庫列表視圖填寫:
public class Einstellungen extends ActionBarActivity {
private VerlaufDataSource datasource;
List<Entry> TrainingList = new ArrayList<Entry>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.trainingstagebuch);
//DB
try {
datasource.open();
TrainingList = datasource.getAllEntries();
datasource.close();
} catch (Exception e) {
Toast.makeText(this,e.toString(), Toast.LENGTH_LONG).show();
}
ArrayAdapter<Entry> adapterVerlauf = new ArrayAdapter<>(Einstellungen.this, android.R.layout.simple_list_item_1, TrainingList);
ListView Verlauf = (ListView) findViewById(R.id.listview);
Verlauf.setAdapter(adapterVerlauf);
}
現在我想知道,我如何使用打印日誌,因爲我想知道,如果我正確填寫分貝。
使用android.util.log將調試消息寫入logcat。看到這裏的信息:http://stackoverflow.com/questions/2364811/ – NigelK