2012-05-21 38 views
8

我想在數據庫中保存工作日,所以我想通過爲每一天分配int值來存儲它。即在SQLite數據庫中插入數組android

- >已選, - >未選定。

星期一= 0/1

週二= 0/1

。 。 。 。 。

星期日= 0/1。

但是,這將使012列表中的7列DB。所以我想,如果任何人都可以幫助我,如果我應該將它存儲在一個單一的數組中,並檢索值以供進一步使用。我正在通過互聯網閱讀一些例子,但沒有以一種簡單的方式得到它。

+1

如果你想在一列中存儲數組,然後把你所有的天數值放入json數組中並將它存儲到數據庫中。 –

回答

10

要在一個列中可以使用逗號分隔符這樣

其中Total_Score_P1是一個字符串數組插入7個值

//字符串數組

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

// 
      } 
5

可以使用一個二進制整數1 =選擇0 =未選定的(1111111)(0000000)

共七天,以便索引0 =週一,1 =週二,2 =結婚,3 =週四,4 =星期五,5 =星期六,6 =星期日..等等。

here 1111111表示選擇全天,0000000整天不選,0001000僅選擇週四。

+0

嗯,我知道,但它會是一樣的事情,因爲我現在正在做,任何想法,如果我們可以在數據庫中使用array/arraylist,因爲我必須使用這些日子來設置我的應用程序中的鬧鐘開。 – Harpreet

+0

你可以通過這個概念來設置鬧鐘,而不是一個大問題。 –

2

創建一個表每天都有一列,布爾值。通過整數ID(使用外鍵)與此表建立關聯這是解決問題的關係方式。

3

我還發現了一種方法,即轉換你的所謂價值觀爲JSON陣列,然後將完整JSON字符串存儲在數據庫中的實體/場。

它有助於服務的價值輕鬆和有效。