2012-05-21 35 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字符串存储在数据库中的实体/场。

它有助于服务的价值轻松和有效。