Android 如何在几个地方保存数据

Android 如何在几个地方保存数据,android,sql,database,sqlite,sqliteopenhelper,Android,Sql,Database,Sqlite,Sqliteopenhelper,如何将数据库中的数据放在多个位置以保存不同的数据。我不知道这是否是一个完全可以理解的问题,这就是为什么我会尝试让他们更接近的原因 我想保存一周中每天的菜名: i、 e.我有一份一周中几天的名单: -星期一, -星期二, -星期三, -星期四, -星期五, -星期六, -星期天 现在我想在选择某一天的时候,把各种各样的菜都保存在那里。我知道我必须用不同的表格把信息放在那里,但如果我想每天写点别的东西,我不知道怎么做。我是否必须为一周中的每一天创建单独的活动,并为特定的一天创建单独的表格 我没有输入

如何将数据库中的数据放在多个位置以保存不同的数据。我不知道这是否是一个完全可以理解的问题,这就是为什么我会尝试让他们更接近的原因

我想保存一周中每天的菜名:

i、 e.我有一份一周中几天的名单: -星期一, -星期二, -星期三, -星期四, -星期五, -星期六, -星期天

现在我想在选择某一天的时候,把各种各样的菜都保存在那里。我知道我必须用不同的表格把信息放在那里,但如果我想每天写点别的东西,我不知道怎么做。我是否必须为一周中的每一天创建单独的活动,并为特定的一天创建单独的表格

我没有输入任何代码,我没有问题,只是问题我无法了解

我知道我将不得不使用不同的表格来放置信息 那里

不一定:-

  • 一周中的每一天,你都可以在菜谱表中有一列

  • 您可以有一个可以用于一周中所有天的列

    • e、 g.如果星期一被赋值为1、星期二2、星期三4、星期四8、16、32、64。(即,2以一周中的某一天(1-7)为准)

    • 然后,如果这道菜是星期一和星期四的,那么你可以存储一个单一的值,由逻辑上的OR组成,将相应的第1天(星期一)逻辑上的OR与第8天(星期四)逻辑上的OR组合为9;加上星期五(16),存储值将为25

假设是后者,则可以提取(其中daysused是指示菜单上应该显示的日期的列):-

星期一菜单使用:-

SELECT * from dishes WHERE (daysused & 1) > 0
SELECT * from dishes WHERE (daysused & 16) > 0
 SELECT * from dishes WHERE (daysused & (32 | 64)) > 0
星期五菜单使用:-

SELECT * from dishes WHERE (daysused & 1) > 0
SELECT * from dishes WHERE (daysused & 16) > 0
 SELECT * from dishes WHERE (daysused & (32 | 64)) > 0
周末菜单使用:-

SELECT * from dishes WHERE (daysused & 1) > 0
SELECT * from dishes WHERE (daysused & 16) > 0
 SELECT * from dishes WHERE (daysused & (32 | 64)) > 0
我是否必须为一周中的每一天创建单独的活动 在那里为特定的一天创建单独的表格

不可以。您可以进行常规活动,可能需要一个按钮来选择一周中的哪一天,或者一个微调器或一个广播组。

单击/选择将计算一天或几天,然后用于确定要查看的天数,该值将按照上述行输入选择标准。然后,生成的光标可以用作ListView的源以显示菜单

例如:- 数据库助手
公共类MyMenuDBHelper扩展了SQLiteOpenHelper{
公共静态最终字符串DBNAME=“mymenu”;
公共静态最终int DBVERSION=1;
公共静态最终字符串displays\u TABLE=“displays”;
公共静态最终字符串\u ID\u COL=BaseColumns.\u ID;
公共静态最终字符串displays\u NAME\u COL=“displays\u NAME”;
公共静态最终字符串displays\u DAYSONMENU\u COL=“displays\u DAYSONMENU”;
MyMenuDBHelper(上下文){
super(上下文,DBNAME,null,DBVERSION);
}
@凌驾
public void onCreate(SQLiteDatabase db){
String crtSQL=“如果不存在,则创建表”+
餐桌上的菜肴+“(”+
碟形\u ID\u COL+“整数主键,”+
菜肴名称+颜色+文字+
菜品\u dayson菜单\u列+“整数”+
")";
execSQL(crtSQL);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
}
公共长addDish(字符串名称,
星期一,
星期二,
星期三,
星期四,
布尔值使用星期五、布尔值使用星期六、布尔值使用星期日){
int daysused=MainActivity.NODAYS_标志;
如果(使用星期一)daysused=daysused | main activity.MONDAY_标志;
如果(使用星期二)daysused=daysused | main activity.tuday_标志;
如果(使用星期三)daysused=daysused | main activity.triday_标志;
如果(UseSurday)daysused=daysused | main activity.thurday_标志;
如果(usefriday)daysused=daysused | main activity.FRIDAY_标志;
如果(使用星期六)daysused=daysused | main activity.SATURDAY_标志;
如果(使用星期日)daysused=daysused | main activity.SUNDAY_标志;
ContentValues cv=新的ContentValues();
简历(菜名、品名、姓名);
cv.put(菜品、日菜单、日使用);
返回此.getWritableDatabase().insert(表,null,cv);
}
公共光标获取菜单(int daystoinclude){
//SQL从菜肴中选择*,其中(菜肴\u daysonmenu和\u daystoshow \u as \u passed)>0
游标csr=this.getWritableDatabase().query(表,null,
“(“+菜肴日菜单列+”&?>0”,
新字符串[]{Integer.toString(daystoinclude)},
空,空,空
);

int count=csr.getCount();//这仍然很宽泛,也很不清楚您需要什么帮助。您的问题仍然不清楚。您正在尝试将您的设计(一周中每天的活动)和实现问题混合在一起(保存一周中每天的菜肴名称).我们能帮你澄清的是什么…这正是我想要的。谢谢你这么全面的回答。你做了很多工作,非常感谢。