平日をデータベースに保存したいので、毎日int値を割り当てて保存しようと思いました。すなわち
1- >選択済み、 0- >未選択。
月曜日=0/1
火曜日=0/1
。。。。。
日曜日=0/1。
ただし、これによりDBに7つの列が作成されます。それで、私がそれを単一の配列に格納し、さらに使用するために値を取得する必要がある場合、誰かがこれを手伝ってくれるかどうかを考えていました。私はインターネットでいくつかの例を読んでいましたが、簡単な方法でそれを取得できませんでした。
1 つの列に 7 つの値を挿入するには、このようにコンマ区切りを使用できます
ここで、Total_Score_P1 は文字列配列です
//文字列配列
String[] Total_Score = new String[] { p1e1,p1e2,p1e3,p1e4,p1e5,p1e6 };
// Convderting it into a single string
String result_ScoreP1 = ("" + Arrays.asList(Total_Score_P1)).
replaceAll("(^.|.$)", " ").replace(", ", " , " );
result_ScoreP1 は
// これの出力
result_ScoreP1 = "p1e1,p1e2,p1e3,p1e4,p1e5,p1e6";
データベースに単一の文字列として挿入し、再度取得するときに次のような部分に分割します
// 文字列配列リスト
// クエリが起動されました
public ArrayList<String> rulTable(String id) {
// TODO Auto-generated method stub
ArrayList<String> Ruleob = new ArrayList<String>();
Cursor c_rule;
try
{
c_rule = db.query(NameTable, new String[]{
columns1
},
Rule_COurseID + "=" + id ,
null, null,
null, null, null);
c_rule.moveToFirst();
// if there is data available after the cursor's pointer, add
// it to the ArrayList that will be returned by the method.
if (!c_rule.isAfterLast())
{
do
{
Ruleob.add(c_rule.getString(0));
}
while (c_rule.moveToNext());
}
// let java know that you are through with the cursor.
c_rule.close();
}
catch(Exception e)
{
}
return Ruleob;
}
//list to get elements
ArrayList<String> ListOne = new ArrayList<String>();
ArrayList<String> row ;
try{
// received values
row = db.TheTable(id);
String r1 = row .get(0);
}
catch(Exception e)
{
}
StringTokenizer st2 = new StringTokenizer(r1, "||");
while(st2.hasMoreTokens()) {
String Desc = st2.nextToken();
System.out.println(Desc+ "\t" );
ListOne.add(Desc);
//
}
2 進整数を使用できます 1= 選択済み 0 = 未選択 (1111111) (0000000)
合計 7 日間なので、インデックス 0=月、1=火、2=水、3=木、4=金、5=土、6=日など..
ここで、1111111 は終日選択、0000000 終日非選択、0001000 木曜日のみ選択を意味します。
また、いわゆる値をJSON配列に変換し、完全なJSON文字列をデータベースのエンティティ/フィールドに保存する方法も発見しました。
値を簡単かつ効果的に提供するのに役立ちます。
各日のブール値の列を持つ別のテーブルを作成します。整数 ID でこのテーブルに関連付ける (外部キーを使用) これは、問題を解決するリレーショナルな方法です。