8

平日をデータベースに保存したいので、毎日int値を割り当てて保存しようと思いました。すなわち

1- >選択済み、 0- >未選択。

月曜日=0/1

火曜日=0/1

。。。。。

日曜日=0/1。

ただし、これによりDBに7つの列が作成されます。それで、私がそれを単一の配列に格納し、さらに使用するために値を取得する必要がある場合、誰かがこれを手伝ってくれるかどうかを考えていました。私はインターネットでいくつかの例を読んでいましたが、簡単な方法でそれを取得できませんでした。

4

4 に答える 4

10

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); 

//   
            }
于 2012-05-21T12:20:58.063 に答える
5

2 進整数を使用できます 1= 選択済み 0 = 未選択 (1111111) (0000000)

合計 7 日間なので、インデックス 0=月、1=火、2=水、3=木、4=金、5=土、6=日など..

ここで、1111111 は終日選択、0000000 終日非選択、0001000 木曜日のみ選択を意味します。

于 2012-05-21T12:08:58.367 に答える
3

また、いわゆる値をJSON配列に変換し、完全なJSON文字列をデータベースのエンティティ/フィールドに保存する方法も発見しました。

値を簡単かつ効果的に提供するのに役立ちます。

于 2013-02-27T13:08:50.693 に答える
2

各日のブール値の列を持つ別のテーブルを作成します。整数 ID でこのテーブルに関連付ける (外部キーを使用) これは、問題を解決するリレーショナルな方法です。

于 2012-05-21T12:42:07.447 に答える