无法从SQLite获取数据到listview

时间:2013-06-19 14:23:20

标签: android sqlite

我在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();
    }



}

0 个答案:

没有答案