Android:外键(希望每辆车都有自己的记录保存在SQLite中)

Android:外键(希望每辆车都有自己的记录保存在SQLite中),android,sqlite,foreign-keys,Android,Sqlite,Foreign Keys,我的android应用程序是关于汽车管理的。 我会有一份汽车清单和它们的管理,比如燃料、旅行、修理。 假设我的清单上有两辆车 我是本田ABC 123。 丰田ABC 298 我应该如何将记录存储在特定汽车的燃油、旅行、维修表中? 我试过外键在加油,旅行和修理表的汽车表。 但是外键的值为空。 我不知道该怎么办 这是我的数据库 车桌 /* * ====================================================================

我的android应用程序是关于汽车管理的。 我会有一份汽车清单和它们的管理,比如燃料、旅行、修理。 假设我的清单上有两辆车 我是本田ABC 123。 丰田ABC 298

我应该如何将记录存储在特定汽车的燃油、旅行、维修表中? 我试过外键在加油,旅行和修理表的汽车表。 但是外键的值为空。 我不知道该怎么办

这是我的数据库 车桌

     /*
     * ====================================================================
     * TABLE CAR COLUMNS
     * ====================================================================
     */
    public static final String TABLE_CAR = "car";
    public static final String COLUMN_CAR_ID = "_id";
    public static final String COLUMN_CAR_NAME = "car_name";

 * ====================================================================
 * CREATING CAR TABLE
 * ====================================================================

public static final String DATABASE_CREATE_TABLE_CAR = "create table "
        + TABLE_CAR + "(" + COLUMN_CAR_ID + " integer primary key autoincrement, "
        + COLUMN_CAR_NAME + " text );";
这是修理台

 * ====================================================================
 * TABLE REPAIR COLUMNS
 * ====================================================================

public static final String TABLE_REPAIR = "repair";
public static final String COLUMN_REPAIR_ID = "_id";
public static final String COLUMN_REPAIR_DATE = "repair_date";
public static final String COLUMN_REPAIR_TYPE = "repair_type";
public static final String COLUMN_REPAIR_TOTAL_COST = "repair_total_cost";
public static final String COLUMN_REPAIR_LOCATION = "repair_location";
public static final String COLUMN_REPAIR_DETAILS = "repair_details";
public static final String COLUMN_REPAIR_CAR_ID = "car_id";


 * ====================================================================
 * CREATING REPAIR TABLE
 * ====================================================================

public static final String DATABASE_CREATE_TABLE_REPAIR = "create table "
        + TABLE_REPAIR + "(" + COLUMN_REPAIR_ID
        + " integer primary key autoincrement, " + COLUMN_REPAIR_DATE
        + " text, " + COLUMN_REPAIR_TYPE + " text not null, "
        + COLUMN_REPAIR_TOTAL_COST + " number, " + COLUMN_REPAIR_DETAILS
        + " text not null, " + COLUMN_REPAIR_LOCATION + " text not null, " + COLUMN_REPAIR_CAR_ID
        + " integer, "  +
            "FOREIGN KEY (car_id) REFERENCES car(_id)" + " ON DELETE CASCADE );";
这是我选择汽车的主屏幕

这是我的维修屏幕 这是维修列表,显示了两辆车的维修数据,我想要我选择的那辆车的数据

我拿到了外键汽车识别码


您应该使用ORMLite。使用外键非常容易,而且不需要编写任何sql查询

你应该做的第一件事是发布一些代码,告诉我们你尝试了什么,问题出在哪里。我应该做什么来存储表中的记录,从写一些代码开始。这是我的代码和截图,但实际上这是我的大学项目。我一定要使用SQLite:看看4.3。我认为答案就在这里。兄弟!你能帮我在我的listview中设置列\u car\u id的变量吗。每次我从listview中单击一个项目时,它都会在onItemselected中为我提供相同的id?我认为您正在为listview使用ArrayAdapter。我建议您创建一个从BaseAdapter继承的自定义适配器,并覆盖方法getItemIDThank bro,谢谢您的时间!事实上我很愚蠢。在我的数据库中没有问题,关键是我在输入其他值时没有输入外键的值。我必须传递id并将其传递给活动表,然后cv.put外键的值。