Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何保存到第二个表,并在保存前将其放入第一个表_Android_Mysql_Android Sqlite - Fatal编程技术网

Android 如何保存到第二个表,并在保存前将其放入第一个表

Android 如何保存到第二个表,并在保存前将其放入第一个表,android,mysql,android-sqlite,Android,Mysql,Android Sqlite,大家好,很多天过去了,我又读了很多例子和帖子。但我还是新手,请不要狠狠地踢我。我认为这个问题不是很好,但我要解释一下,我在android DB上有3个表。 这是三张桌子 表11项目 表_方法(其输入) 表2:商品的产量 我想对所有产品名称使用id_商品,但我没有实践经验 现在我能做的是,我必须将DB保存在不同的2个表中,并在不同的listview中使用它们 我想先将所有id_商品保存在TABLE_ITEMS,然后保存到TABLE_PRIHOD,因为我认为如果我有所有商品的名称,那么在DB工作会更

大家好,很多天过去了,我又读了很多例子和帖子。但我还是新手,请不要狠狠地踢我。我认为这个问题不是很好,但我要解释一下,我在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
    这是我的想象: (id)1(id_货物)1(日期)2014.02.12。(金额)500(成本)2

    公共类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();
         }
    }