Android 如何保存到第二个表,并在保存前将其放入第一个表
大家好,很多天过去了,我又读了很多例子和帖子。但我还是新手,请不要狠狠地踢我。我认为这个问题不是很好,但我要解释一下,我在android DB上有3个表。Android 如何保存到第二个表,并在保存前将其放入第一个表,android,mysql,android-sqlite,Android,Mysql,Android Sqlite,大家好,很多天过去了,我又读了很多例子和帖子。但我还是新手,请不要狠狠地踢我。我认为这个问题不是很好,但我要解释一下,我在android DB上有3个表。 这是三张桌子 表11项目 表_方法(其输入) 表2:商品的产量 我想对所有产品名称使用id_商品,但我没有实践经验 现在我能做的是,我必须将DB保存在不同的2个表中,并在不同的listview中使用它们 我想先将所有id_商品保存在TABLE_ITEMS,然后保存到TABLE_PRIHOD,因为我认为如果我有所有商品的名称,那么在DB工作会更
这是三张桌子
- 保存于2014年2月12日第1号图书表(输入)500件2美元
- 在保存到TABLE_PRIHOD之前,我想将书籍保存到TABLE_项目,以将其作为id_商品
- 使用它来表\方法(输入)不是作为书本写入,而是从表\项写入其id
公共类DBHandlerImpl扩展SQLiteOpenHelper实现DBHandler{
//所有数据库变量都在这里
公共DBHandlerImpl(上下文){
super(上下文、数据库名称、null、数据库版本);
}
@凌驾
public void onCreate(SQLiteDatabase db){
String query=“create table”+表项+”(“+ID+”整数主键自动递增,“+ID\u货物+”整数);”;
execSQL(查询);
query=“create table”+table\u PRIHOD+”(“+ID\u PRIHOD+”整数主键自动递增,”+
货物+“文本,”+
日期+文本,“+
金额+整数,“+
成本+“整数”;“;
execSQL(查询);
query=“create table”+table\u RASHOD+”(“+ID\u PRODANO+”整数主键自动递增,”+
PRODANO+“文本,”+
PRODANO_日期+文本+
PRODANO_金额+整数,“+
生产成本+“整数”;“;
execSQL(查询);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,inti,inti2){
db.execSQL(“如果存在删除表”+表项);
db.execSQL(“如果存在删除表”+表优先权);
db.execSQL(“如果存在,则删除表”+TABLE_RASHOD);
onCreate(db);
}
@凌驾
公共无效附加项SID(货物){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
value.put(GOODS,GOODS.getName_GOODS());
db.insert(表_项,空,值);
db.close();
}
@凌驾
公共无效地址(货物){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
//value.put(ID,goods.getId());
value.put(GOODS,GOODS.getName_GOODS());
value.put(DATE,goods.getDate());
value.put(AMOUNT,goods.getAmount());
value.put(COST,goods.getCost());
db.insert(表方法,空,值);
db.close();
}
@凌驾
公共无效地址(货物){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues=新的ContentValues();
value.put(PRODANO,goods.getName_goods());
value.put(PRODANO_DATE,goods.getDate());
value.put(PRODANO_AMOUNT,goods.getAmount());
value.put(PRODANO_COST,goods.getCost());
db.insert(表_RASHOD,null,值);
db.close();
}
公共类Prihod扩展活动{
//所有变量都在这里
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.prihod);
//在这里初始化代码
//findViewById也位于此处
}
公共void saveTovar(视图五){
AlertDialog.Builder=新建AlertDialog.Builder(Prihod.this);
建筑商名称(“ППааааааааа…”);
建筑商设置信息(“ы;
builder.setIcon(R.drawable.save);
builder.setPositiveButton(“аа”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
商品=新商品(1,edtTovar.getText().toString(),
editDate.getText().toString(),
editAmount.getText().toString(),
editCost.getText().toString());
db.addPrihod(货物);
Toast.makeText(getApplicationContext(),“thoast.LENGTH.”show();
}
});
builder.setNegativeButton(“цц”,新的DialogInterface.OnClickListener(){
@凌驾
public void onClick(DialogInterface dialog,int which){
dialog.cancel();
}
});
builder.show();
}`“公共类Rashod扩展活动{
私有数据库;
私人物品;
私人编辑文本编辑方法;
私人编辑文本编辑日期方法;
私人编辑文本编辑手稿;
私人编辑文本编辑方法;
私人按钮btn_rashod_save;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.rashod);
TextView textTovar=(TextView)findViewById(R.id.textTovar);
TextView textDate=(TextView)findViewById(R.id.textDate);
TextView textAmount=(TextView)findViewById(R.id.textAmount);
TextView textCost=(TextView)findViewById(R.id.textCost);
editRashod=(EditText)findViewById(R.id.editRashod);
editDateRashod=(EditText)findViewById(R.id.editDateRashod);
编辑量
public class DBHandlerImpl extends SQLiteOpenHelper implements DBHandler<Goods>{
// all DB-variabls here
public DBHandlerImpl(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
String query = "create table " + TABLE_ITEMS + "(" + ID + " integer primary key autoincrement, " + ID_GOODS + " integer);";
db.execSQL(query);
query = "create table " + TABLE_PRIHOD + "(" + ID_PRIHOD + " integer primary key autoincrement, " +
GOODS + " TEXT, " +
DATE + " TEXT, " +
AMOUNT + " INTEGER, " +
COST + " INTEGER);";
db.execSQL(query);
query = "create table " + TABLE_RASHOD + "(" + ID_PRODANO + " integer primary key autoincrement, " +
PRODANO + " TEXT, " +
PRODANO_DATE + " TEXT, " +
PRODANO_AMOUNT + " INTEGER, " +
PRODANO_COST + " INTEGER);";
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int i, int i2) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_ITEMS);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_PRIHOD);
db.execSQL("DROP TABLE IF EXISTS " + TABLE_RASHOD);
onCreate(db);
}
@Override
public void addItemsId(Goods goods) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(GOODS, goods.getName_goods());
db.insert(TABLE_ITEMS, null, values);
db.close();
}
@Override
public void addPrihod(Goods goods) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
// values.put(ID, goods.getId());
values.put(GOODS, goods.getName_goods());
values.put(DATE, goods.getDate());
values.put(AMOUNT, goods.getAmount());
values.put(COST, goods.getCost());
db.insert(TABLE_PRIHOD, null, values);
db.close();
}
@Override
public void addRashod(Goods goods) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(PRODANO, goods.getName_goods());
values.put(PRODANO_DATE, goods.getDate());
values.put(PRODANO_AMOUNT, goods.getAmount());
values.put(PRODANO_COST, goods.getCost());
db.insert(TABLE_RASHOD, null, values);
db.close();
}
public class Prihod extends Activity{
//all variables are here
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.prihod);
//initialize code here
//findViewById also located here
}
public void saveTovar(View v){
AlertDialog.Builder builder = new AlertDialog.Builder(Prihod.this);
builder.setTitle("Потдвердить сохранение...");
builder.setMessage("Вы уверены, что хотите сохранить?");
builder.setIcon(R.drawable.save);
builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
goods = new Goods(1,edtTovar.getText().toString(),
editDate.getText().toString(),
editAmount.getText().toString(),
editCost.getText().toString());
db.addPrihod(goods);
Toast.makeText(getApplicationContext(), "Новый товар сохранен!", Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
builder.show();
}` `public class Rashod extends Activity{
private DBHandler<Goods> db;
private Goods goods;
private EditText editRashod;
private EditText editDateRashod;
private EditText editAmountRashod;
private EditText editCostRashod;
private Button btn_rashod_save;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.rashod);
TextView textTovar = (TextView)findViewById(R.id.textTovar);
TextView textDate = (TextView)findViewById(R.id.textDate);
TextView textAmount = (TextView)findViewById(R.id.textAmount);
TextView textCost = (TextView)findViewById(R.id.textCost);
editRashod = (EditText)findViewById(R.id.editRashod);
editDateRashod = (EditText)findViewById(R.id.editDateRashod);
editAmountRashod = (EditText)findViewById(R.id.editAmountRashod);
editCostRashod = (EditText)findViewById(R.id.editCostRashod);
btn_rashod_save = (Button)findViewById(R.id.btn_rashod_save);
db = new DBHandlerImpl(this);
}
@Override
public long addItemsId(Goods goods) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(GOODS, goods.getName_goods());
long goods_id = db.insert(TABLE_ITEMS, null, values);
db.close();
return goods_id;
}
@Override
public void addPrihod(Goods goods) {
long goods_id = addItemsId(goods);
// -1 means an error occured
if(goods_id != -1){
goods.setId(goods_id);
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(ID_GOODS, goods_id);
values.put(GOODS, goods.getName_goods());
values.put(DATE, goods.getDate());
values.put(AMOUNT, goods.getAmount());
values.put(COST, goods.getCost());
db.insert(TABLE_PRIHOD, null, values);
db.close();
}
}