我在android中有问题从数据库获取数据并放入listview。我想得到:godz_pobudki,nazwa,powtarzanie。但是使用listview下面的代码,我仍然是空的......有人可以帮助我吗?
p.s抱歉我的英文..:|
DB TABLE现在看起来像:
_________________________________________________________________________
|_id|godz_pobudki|powtarzanie|nazwa|wibracja|melodia|jaka_melodia|glosnosc|
=========================================================================
| 1 | 23:16 | 1 | A | 0 | 1 | ring_5 | 60% |
| 2 | 14:16 | 7 | B | 1 | 1 | ring_3 | 100% |
_________________________________________________________________________
数据库处理程序:
package issi.uz.zgora.pl.budzik;
import java.util.ArrayList;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class BazaDanych {
private static final String DEBUG_TAG = "SqLiteBazaDanych";
public static final String DATABASE_NAME = "budzik";
public static final String DATABASE_TABLE = "opcje_budzika";
public static final int DATABASE_VERSION = 1;
public static final String KEY_ROWID = "_id";
public static final String KEY_GODZ_POBUDKI = "godz_pobudki";
public static final String KEY_POWTARZANIE = "powtarzanie";
public static final String KEY_NAZWA = "nazwa";
public static final String KEY_WIBRACJA = "wibracja";
public static final String KEY_MELODIA = "melodia";
public static final String KEY_WYBRANA_MELODIA = "wybrana_melodia";
public static final String KEY_GLOSNOSC = "glosnosc";
private DbHelper mkHelper;
private final Context mkContext;
private SQLiteDatabase mkDatabase;
private static class DbHelper extends SQLiteOpenHelper {
public DbHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" + KEY_ROWID
+ " INTEGER PRIMARY KEY AUTOINCREMENT, " + KEY_GODZ_POBUDKI
+ " TEXT NOT NULL, " + KEY_POWTARZANIE + " TEXT NOT NULL, "
+ KEY_NAZWA + " TEXT NOT NULL, " + KEY_WIBRACJA
+ " TEXT NOT NULL, " + KEY_MELODIA + " TEXT NOT NULL, "
+ KEY_WYBRANA_MELODIA + " TEXT NOT NULL, " + KEY_GLOSNOSC
+ " TEXT NOT NULL);");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public BazaDanych(Context c) {
mkContext = c;
}
public BazaDanych open() throws SQLException {
mkHelper = new DbHelper(mkContext);
mkDatabase = mkHelper.getWritableDatabase();
return this;
}
public void close() {
mkHelper.close();
}
public long addItem(String godz_pobudki, String powtarzanie, String nazwa,
String wibracja, String melodia, String wybrana_melodia,
String glosnosc) {
ContentValues cv = new ContentValues();
cv.put(KEY_GODZ_POBUDKI, godz_pobudki);
cv.put(KEY_POWTARZANIE, powtarzanie);
cv.put(KEY_NAZWA, nazwa);
cv.put(KEY_WIBRACJA, wibracja);
cv.put(KEY_MELODIA, melodia);
cv.put(KEY_WYBRANA_MELODIA, wybrana_melodia);
cv.put(KEY_GLOSNOSC, glosnosc);
return mkDatabase.insert(DATABASE_TABLE, null, cv);
}
public ArrayList getList() {
String[] columns = new String[] { KEY_NAZWA };
Cursor c = mkDatabase.query(DATABASE_TABLE, columns, null, null, null,
null, null);
int iItem = c.getColumnIndex(KEY_NAZWA);
ArrayList arrList = new ArrayList();
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
arrList.add(0, c.getString(iItem).toString());
}
return arrList;
}
public void delItem(String _id) {
mkDatabase.delete(DATABASE_TABLE, KEY_ROWID + "='" + _id + "'", null);
}
}
主要活动:
package issi.uz.zgora.pl.budzik;
import java.util.ArrayList;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.View;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//wyswietlenie glownego layoutu bez tiitle
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
//dodanie nowego alarmu
Button dodaj_alarm = (Button) findViewById(R.id.Button01);
dodaj_alarm.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent dodaj_alarm = new Intent(MainActivity.this, UstawBudzik.class);
MainActivity.this.startActivity(dodaj_alarm);
}
});
//polaczenie z baza danych
BazaDanych fromhandler = new BazaDanych(this);
fromhandler.open();
//wypisanie alarmow z bazy danych do listview
ArrayList data = fromhandler.getList();
ListView listView = (ListView)findViewById(R.id.listView1);
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,data);
listView.setAdapter(adapter);
//zamkniecie polaczenia z baza danych
fromhandler.close();
}
}