Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将数据库表中的RAW设置为单选按钮_Android_Database_Radio Button - Fatal编程技术网

Android 将数据库表中的RAW设置为单选按钮

Android 将数据库表中的RAW设置为单选按钮,android,database,radio-button,Android,Database,Radio Button,至于我,我正在尝试设置这个光标,并将其设置得非常完美。 但据我所知,它从表中的字符串数组中获取值 我有一个表,第一列是id,第二列是name。 问题是,我希望游标获取每个名称(每个名称都有自己的raw),上面的代码查找的是列,而不是raw。 当前结果仅为第一个名称 争议裁决委员会是: public class DatBas { public static final String KEY_ROWID = "_id"; public static final String KEY

至于我,我正在尝试设置这个光标,并将其设置得非常完美。 但据我所知,它从表中的字符串数组中获取值

我有一个表,第一列是id,第二列是name。 问题是,我希望游标获取每个名称(每个名称都有自己的raw),上面的代码查找的是列,而不是raw。 当前结果仅为第一个名称

争议裁决委员会是:

public class DatBas {

    public static final String KEY_ROWID = "_id";
    public static final String KEY_SHOURS = "start_hour";
    public static final String KEY_SMINUTE = "start_minute";
    public static final String KEY_SDATE = "start_date";
    public static final String KEY_AMOUNT = "amount";
    public static final String KEY_SIDE = "side";
    public static final String KEY_KIND = "kind";

    public static final String KEY_ROW_b_ID = "_id";
    public static final String KEY_b_IMAGE_PATH = "uri_b";
    public static final String KEY_b_NAME = "b_name";
    public static final String KEY_b_GENDER = "b_gender";
    public static final String KEY_b_BORN_DATE_YEAR = "b_age_year";
    public static final String KEY_b_BORN_DATE_MONTH = "b_age_month";
    public static final String KEY_b_BORN_DATE_DAY = "b_age_day";

    private static final String DATABASE_NAME = "TamatDB";
    private static final String DATABASE_TABLE = "stop_watch_records";
    private static final String DATABASE_TABLE_SETTINGS = "settings";

    private static final int DATABASE_VERSION = 3 ;

    private TamarDatabase thdb;
    private static Context tcontext;
    private SQLiteDatabase tdb;

    private static class TamarDatabase extends SQLiteOpenHelper {

        public TamarDatabase(Context context) {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }

        @Override
        public void onCreate(SQLiteDatabase db) {
            String ctData = "CREATE TABLE  " + DATABASE_TABLE + " ( "
                    + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + KEY_SHOURS + " TEXT, " + KEY_SMINUTE
                    + " TEXT, " + KEY_SDATE + " TEXT, "
                    + KEY_AMOUNT + " TEXT, " + KEY_SIDE
                    + " TEXT, " + KEY_KIND + " TEXT );";
            db.execSQL(ctData);

            String ctSettings = "CREATE TABLE " + DATABASE_TABLE_SETTINGS
                    + " ( " + KEY_ROW_b_ID
                    + " INTEGER PRIMARY KEY AUTOINCREMENT, "
                    + KEY_b_IMAGE_PATH + " TEXT, " + KEY_b_NAME
                    + " TEXT, " + KEY_b_GENDER + " TEXT, "
                    + KEY_b_BORN_DATE_YEAR + " TEXT, "
                    + KEY_b_BORN_DATE_MONTH + " TEXT, "
                    + KEY_b_BORN_DATE_DAY + " TEXT);";
            db.execSQL(ctSettings);

        }

        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
            db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_SETTINGS);
            onCreate(db);
        }
    }

    public DatBas(Context c) {
        tcontext = c;
    }

    public DatBas open() throws SQLiteException {
        thdb = new TamarDatabase(tcontext);
        tdb = thdb.getWritableDatabase();
        return this;
    }

    public SQLiteDatabase getReadableDatabase() throws SQLiteException {
        thdb = new TamarDatabase(tcontext);
        tdb = thdb.getReadableDatabase();
        return tdb;
    }


    public void close() {
        tdb.close();
    }

    public long createEntry(String sh, String sm, String sd, String at,
            String tside, String tkind) {
        ContentValues cv = new ContentValues();
        cv.put(KEY_SHOURS, sh);
        cv.put(KEY_SMINUTE, sm);
        cv.put(KEY_SDATE, sd);
        cv.put(KEY_AMOUNT, at);
        cv.put(KEY_SIDE, tside);
        cv.put(KEY_SIDE, tkind);

        return tdb.insert(DATABASE_TABLE, null, cv);
    }

    public long createEntrySettings(String pt, String bn, String bg,
            String bbdy, String bbdm, String bbdd) {
        ContentValues cv2 = new ContentValues();
        cv2.put(KEY_b_IMAGE_PATH, pt);
        cv2.put(KEY_b_NAME, bn);
        cv2.put(KEY_b_GENDER, bg);
        cv2.put(KEY_b_BORN_DATE_YEAR, bbdy);
        cv2.put(KEY_b_BORN_DATE_MONTH, bbdm);
        cv2.put(KEY_b_BORN_DATE_DAY, bbdd);

        return tdb.insert(DATABASE_TABLE_SETTINGS, null, cv2);
    }

    public String getData() {
        String[] columns = new String[] { KEY_ROWID, KEY_SHOURS, KEY_SMINUTE,
                KEY_SDATE, KEY_AMOUNT, KEY_SIDE, KEY_KIND };
        Cursor c = tdb.query(DATABASE_TABLE, columns, null, null, null, null,
                null);
        String results = "";

        int iRaw = c.getColumnIndex(KEY_ROWID);
        int iShours = c.getColumnIndex(KEY_SHOURS);
        int iSminute = c.getColumnIndex(KEY_SMINUTE);
        int iDate = c.getColumnIndex(KEY_SDATE);
        int iAmount = c.getColumnIndex(KEY_AMOUNT);
        int iSide = c.getColumnIndex(KEY_SIDE);
        int iKind = c.getColumnIndex(KEY_KIND);

        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
            results = results + "the id is " + c.getString(iRaw)
                    + " the sart hour is " + " " + c.getString(iShours)
                    + " the start minute is " + " " + c.getString(iSminute)
                    + " the start date is " + " " + c.getString(iDate)
                    + " the amount is " + " " + c.getString(iAmount)
                    + " the side is " + " " + c.getString(iSide)
                    + " the kind is " + " " + c.getString(iKind) + "\n";
        }
        return results;
    }

    public String getDataSettings() {
        String[] columns = new String[] { KEY_ROW_b_ID, KEY_b_IMAGE_PATH,
                KEY_b_NAME, KEY_b_GENDER, KEY_b_BORN_DATE_YEAR,
                KEY_b_BORN_DATE_MONTH, KEY_b_BORN_DATE_DAY };
        Cursor c = tdb.query(DATABASE_TABLE_SETTINGS, columns, null, null,
                null, null, null);
        String results = "";

        int iRawbId = c.getColumnIndex(KEY_ROW_b_ID);
        int iBIPath = c.getColumnIndex(KEY_b_IMAGE_PATH);
        int iBName = c.getColumnIndex(KEY_b_NAME);
        int iGender = c.getColumnIndex(KEY_b_GENDER);
        int iBBDateYear = c.getColumnIndex(KEY_b_BORN_DATE_YEAR);
        int iBBDateMonth = c.getColumnIndex(KEY_b_BORN_DATE_MONTH);
        int iBBDateDay = c.getColumnIndex(KEY_b_BORN_DATE_DAY);

        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
            results = results + " id " + " " + c.getString(iRawbId)
                    + " path " + " " + c.getString(iBIPath)
                    + " name " + " " + c.getString(iBName)
                    + " gender " + " " + c.getString(iGender)
                    + " year " + " " + c.getString(iBBDateYear)
                    + " month " + " " + c.getString(iBBDateMonth)
                    + " day " + " " + c.getString(iBBDateDay) + "\n";
        }
        return results;
    }

    public String getDataSettingsbName() {
        String[] columns = new String[] { KEY_ROW_b_ID, KEY_b_NAME };
        Cursor c = tdb.query(DATABASE_TABLE_SETTINGS, columns, null, null,
                null, null, null);
        String results = "";

        int iRawbId = c.getColumnIndex(KEY_ROW_b_ID);
        int iBName = c.getColumnIndex(KEY_b_NAME);

        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
            results = c.getString(iRawbId)+ c.getString(iBName)+ "\n";
        }
        return results;
    }

    public DatBas delete() {
        tdb.delete(DATABASE_TABLE, null, null);
        tdb.delete(DATABASE_TABLE_SETTINGS, null, null);
        return null;
    }

    public static class TamarDatabaseCursor extends SQLiteCursor {

        /** The query for this cursor */
        private static final String QUERY = "SELECT _id, b_name FROM settings";

        /** Cursor constructor */
        private TamarDatabaseCursor(SQLiteDatabase db,
                SQLiteCursorDriver driver, String editTable, SQLiteQuery query) {
            super(db, driver, editTable, query);
        }

        /** Private factory class necessary for rawQueryWithFactory() call */

        private static class Factory implements SQLiteDatabase.CursorFactory {
            public Cursor newCursor(SQLiteDatabase db,
                    SQLiteCursorDriver driver, String editTable,
                    SQLiteQuery query) {
                return new TamarDatabaseCursor(db, driver, editTable, query);
            }
        }

        /* Accessor functions get one per database column */

        public int getActressId() {
            return getInt(getColumnIndexOrThrow("settings._id"));
        }

    }

    public TamarDatabaseCursor getActress() {
        SQLiteDatabase d = getReadableDatabase();
        TamarDatabaseCursor c = (TamarDatabaseCursor) d.rawQueryWithFactory(
                new TamarDatabaseCursor.Factory(), TamarDatabaseCursor.QUERY,
                null, null);
        c.moveToFirst();
        return c;
    }




}
活动是:

DatBas db = new DatBas(Tamar_appActivity.this);
    TamarDatabaseCursor c = db.getActress();

    if (c.moveToFirst())
        DisplayRadioButton(c);

    else
        Toast.makeText(this, "No title found", Toast.LENGTH_LONG).show();
    db.close();

}

public void DisplayRadioButton(Cursor c) {
    for (int i = 1; i < (c.getColumnCount()); i++) {
        RadioGroup radiogroup = (RadioGroup) findViewById(R.id.bNameSelectGroup);
        RadioButton rdbtn = new RadioButton(this);
        rdbtn.setId(i);
        rdbtn.setText(c.getString(i));
        radiogroup.addView(rdbtn);      
    }

}
DatBas db=新的DatBas(Tamar_appActivity.this);
TamarDatabaseCursor c=db.getActor();
if(c.moveToFirst())
显示收音机按钮(c);
其他的
Toast.makeText(这是“找不到标题”,Toast.LENGTH_LONG.show();
db.close();
}
公共无效显示单选按钮(光标c){
对于(int i=1;i<(c.getColumnCount());i++){
放射组放射组=(放射组)findViewById(R.id.bNameSelectGroup);
RadioButton rdbtn=新的RadioButton(本);
rdbtn.setId(i);
rdbtn.setText(c.getString(i));
radiogroup.addView(rdbtn);
}
}

您不了解游标和查询是如何工作的

查询数据库并告诉它从数据库中符合特定条件的特定列返回信息。数据库以游标的形式向您发送数据,该游标包含您从与请求匹配的所有行中指定的所有列的信息,并按照您指定的顺序进行

SELECT _id, firstname, lastname FROM actresses
SELECT _id, firstname FROM actresses
上面的命令将从数据库中每行的_id、firstname和lastname列返回数据

所以如果你有三个女演员在那里,它会返回三条记录,信息来自你指定的三列

SELECT _id, firstname, lastname FROM actresses
SELECT _id, firstname FROM actresses
这将只返回每个记录的_id和firstname列中的信息

编辑

您只能获得名称,因为这是您在进行查询时所要求的全部:

private static final String QUERY = "SELECT _id, b_name FROM settings 

更改该选项以返回更多列,您将获得更多单选按钮。

您所说的“raws”是什么意思?我知道你有两列,你也想得到每个名字,你只有两列,一个id和一个name列,所以每个名字都在谈论列名SOk,那么在该表中只有第一个原始数据的结果的原因是什么呢?听起来yur查询是不正确的。编辑您的问题并发布您的代码,以便我们可以查看(您的代码,而不是教程)。我只想返回名称。问题是它只返回第一个raw,而不是表中的所有raw(因此我无法获取名称编号2等等…),数据库中是否有多个名称??如果你这样做,我想我会看看你的自定义光标。。。我会用一个标准的光标试试,看看会发生什么。但这不是本教程的重点?要从数据库中提取表中的名称,是否在单选按钮中表示主题?