-3
私は、次の変数を使用してデータベースを作成:ブール値を正しく扱うデータベースを作成するにはどうすればよいですか?
public static final String KEY_VALUE = "x"; public static final String KEY_ISROOT = "y"; public static final String KEY_ROWID = "_id"; public static final String KEY_REALROWID = "_ids"; public static final String KEY_ISPOWER = "z"; public static final String KEY_POWERORROOTNUMBER = "b"; public static final String KEY_ISDIVISOR = "a"; public static final String KEY_ISMULTIPLIER = "c"; public static final String KEY_ISADD = "d"; public static final String KEY_ISSUBTRACT = "e"; public static final String KEY_ISPS = "f"; public static final String KEY_ISPE = "g"; private static final String TAG = "NotesDbAdapter"; private DatabaseHelper mDbHelper; private SQLiteDatabase mDb; private static final String DATABASE_NAME = "data"; private static final String DATABASE_TABLE = "notes"; private static final int DATABASE_VERSION =1; private static final String DATABASE_CREATE = " create table " +DATABASE_TABLE+ " (" +KEY_VALUE+ " double, " +KEY_REALROWID+ " integer, " +KEY_ROWID+ " integer primary key autoincrement, "+KEY_ISPOWER+ " boolean, "+KEY_ISDIVISOR+ " boolean, "+KEY_ISMULTIPLIER+ " boolean, "+KEY_ISADD+ " boolean, "+KEY_ISSUBTRACT+ " boolean, "+KEY_ISPS+ " boolean, "+KEY_ISPE+ " boolean, "+KEY_POWERORROOTNUMBER+ " double, " +KEY_ISROOT+ " boolean);";
挿入行のIDコードは次のとおりです。
public void createNote(double value, boolean isroot, boolean ispower, boolean ismultiply, boolean isdivisor, boolean add, boolean issubtract, double roototpowerval, boolean paranthaseesend, boolean paranthaseesstart) { ContentValues initialValues = new ContentValues(); initialValues.put(KEY_VALUE, value); initialValues.put(KEY_ISROOT, isroot); initialValues.put(KEY_ISPOWER, ispower); initialValues.put(KEY_ISMULTIPLIER, ismultiply); initialValues.put(KEY_ISDIVISOR, isdivisor); initialValues.put(KEY_ISADD, add); initialValues.put(KEY_ISSUBTRACT, issubtract); initialValues.put(KEY_POWERORROOTNUMBER, roototpowerval); initialValues.put(KEY_ISPE, paranthaseesend); initialValues.put(KEY_ISPS, paranthaseesstart); long r= mDb.insert(DATABASE_TABLE, null, initialValues); int a = testCount(); ContentValues argsa = new ContentValues(); argsa.put(KEY_VALUE, value); argsa.put(KEY_ISROOT, isroot); argsa.put(KEY_ISPOWER, ispower); argsa.put(KEY_ISMULTIPLIER, ismultiply); argsa.put(KEY_ISDIVISOR, isdivisor); argsa.put(KEY_ISADD, add); argsa.put(KEY_ISSUBTRACT, issubtract); argsa.put(KEY_POWERORROOTNUMBER, roototpowerval); argsa.put(KEY_REALROWID, a); argsa.put(KEY_ISPE, paranthaseesend); argsa.put(KEY_ISPS, paranthaseesstart); mDb.update(DATABASE_TABLE, argsa, KEY_ROWID + "=" + r, null); }The fetchRow code is: public Cursor fetchNote(long rowId) throws SQLException { Cursor mCursor = mDb.query(true, DATABASE_TABLE, new String[] {KEY_ISPS,KEY_ISPE,KEY_VALUE,KEY_ISROOT,KEY_REALROWID,KEY_ISPOWER,KEY_POWERORROOTNUMBER,KEY_ISDIVISOR,KEY_ISMULTIPLIER,KEY_ISADD,KEY_ISSUBTRACT}, KEY_REALROWID + "=" + rowId, null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; }
それは正しく、ここでビューを変更することができます。
public void onClick(View v) { double d = 3; mDbHelper.deleteAllNotes(); mDbHelper.createNote(d, false, false, false, false, false, false, 0, false, false); mDbHelper.createNote(0, false, false, true,false, false, false, 0, false, false); Cursor c = mDbHelper.fetchNote(1);if(d==Double.valueOf(c.getString(c.getColumnIndexOrThrow(NotesDbAdapter.KEY_VALUE)))){setContentView(R.layout.works);} }
しかし、それをdoesntのここにビューを変更:
public void onClick(View v) {
double d = 3;
mDbHelper.deleteAllNotes();
mDbHelper.createNote(d, false, false, false, false, false, false, 0, false, false); mDbHelper.createNote(0, false, false, true,false, false, false, 0, false, false); Cursor c = mDbHelper.fetchNote(2);
if(Boolean.parseBoolean(c.getString(c.getColumnIndexOrThrow(NotesDbAdapter.KEY_ISMULTIPLIER)))){
setContentView(R.layout.awesome);
}
}
SQLデータベースを正しくブーリアンで送受信する方法を教えてください。
"処理できません"を定義します。 – MatBailie
こんにちは - あなたの投稿のコードを整理することができます。誰もが読むことはほとんど不可能です! –
いいえ、行全体を見るために13マイル以上スクロールする必要はありません。 – JNK