如何在databasehelper上定义游标getboolean

时间:2018-04-24 14:53:23

标签: android sqlite android-studio

我有一个数据库帮助器,它可以从模型中定义一个列表,如下面的代码所示。我是否混淆了如何在boolean database helper中设置游标?谁能告诉我怎么样?

  

列表模型

public class Pengecekan {
        private int id_pengecekan;
        private String pengecekan;
        private String normal;
        private String nama_alat;
        boolean tkn;


        public Pengecekan(int id_pengecekan, String pengecekan, String normal, String nama_alat, boolean tkn) {
            this.id_pengecekan = id_pengecekan;
            this.pengecekan = pengecekan;
            this.normal = normal;
            this.nama_alat = nama_alat;
            this.tkn = tkn;
        }

        public int getId_pengecekan() {return id_pengecekan;}

        public void setId_pengecekan(int id_pengecekan) {  id_pengecekan = id_pengecekan; }

        public String getPengecekan() { return pengecekan; }

        public void setPengecekan(String pengecekan) { this.pengecekan = pengecekan;}

        public String getNormal() {return normal;}

        public void setNormal(String normal) {this.normal = normal; }

        public String getNama_alat() {return nama_alat;}

        public void setNama_alat(String nama_alat) {this.nama_alat = nama_alat;}

        public boolean isTkn() {return tkn;}

        public void setTkn(boolean tkn) { this.tkn = tkn;}
    }
  

databaseheper

public List<Pengecekan> getListPengecekan(String X) {

        Pengecekan pengecekan = null;
        List<Pengecekan> PengecekanList = new ArrayList<>();
        openDataBase();
        Cursor cursor = myDataBase.rawQuery("SELECT A.id_pengecekan, A.pengecekan, A.normal, B.nama_alat FROM  tb_pengecekan A, tb_alat B, tb_instrumen C  " +
                "WHERE C.id_instrumen = B.id_instrumen AND A.id_alat = B.id_alat AND C.id_instrumen = '" + X + "' ", null);
        cursor.moveToFirst();
        while (!cursor.isAfterLast()) {
            ***pengecekan = new Pengecekan(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getInt());***
           PengecekanList.add(pengecekan);

            cursor.moveToNext();}

        cursor.close();
        close();
        return PengecekanList;
    }

我很困惑如何在上面代码的***行上定义光标。

1 个答案:

答案 0 :(得分:0)

正如您在SQLite definition中看到的那样: SQLite中没有Boolean数据类型。

你必须绕过这个,即通过存储大于0的int表示true,0表示false。

沿着这条路线:

pengecekan = new Pengecekan(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3), cursor.getInt(4) > 0);