Я хочу сохранить будние дни в базе данных, поэтому я решил сохранить его, назначив значение int каждый день. то есть
1 → Выбрано, 0 → Не выбрано.
Понедельник = 0/1
Вторник = 0/1
. , , , .
Воскресенье = 0/1.
Но это сделает 7 столбцов в DB. Поэтому я подумал, может ли кто-нибудь помочь мне с этим, если я должен сохранить его в одном массиве и получить значения для дальнейшего использования. Я читал несколько примеров через Интернет, но не получил его в простой форме.
Чтобы вставить 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 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);
//
}
Вы можете использовать двоичное целое число 1 = выбрано 0 = Не выбрано (1111111) (0000000)
всего семь дней, поэтому индекс 0 = mon, 1 = tues, 2 = wed, 3 = thurs, 4 = friday, 5 = sat, 6 = sunday..and so on..
здесь 1111111 означает, что выбран весь день, 0000000 весь день не выбран, 0001000 выбран только в четверг.
Я также обнаружил способ, т.е. преобразовываю ваши так называемые значения в JSON Array, а затем сохранил полную строку JSON в сущности/поле в базе данных.
Это помогает легко и эффективно обслуживать ценности.
Создайте еще одну таблицу со столбцом для каждого дня, логическое значение. Создайте связь с этой таблицей с помощью integer id (используйте внешний ключ). Это реляционный способ решения проблемы.