如何在一个 onClick 中添加来自 3 个不同表的元素

How to add elements from 3 differents tables in one onClick

我想从 table "page"

添加一页(带有标题和日期)

将它从 table "tag"

中关联一个标签(只有文本标签)

我有一个同事 table "pageTagId "(id_page 和 id_tag)

有我的方法 addPage :

public long addPage(Page page){

        ContentValues values = new ContentValues();
        values.put(PageSQLITE.COL_DATE_PAGE,page.getDatePage().getTime());
        values.put(PageSQLITE .COL_TITLE_PAGE,page.getTitrePage());
        return bdd.insert(PageSQLITE.TABLE_PAGE, null, values);

    }

有我的方法 addTag :

public long addTag(Tag tag) {

    ContentValues values = new ContentValues();
    values.put(TagSQLITE.COL_TEXT_TAG, tag.getTextTag());
    return bdd.insert(TagSQLITE.TABLE_TAG, null, values);
}

我的伙伴table:

   private final static String CREATE_TABLE_LIENS_TAG_PAGE =
            "CREATE TABLE " + TABLE_LIENS_TAG_PAGE + " ("
                    + COL_ID_PAGE + " INTEGER PRIMARY FOREIGN KEY NOT NULL  AUTOINCREMENT, "
                    + COL_ID_TAG + " INTEGER PRIMARY FOREIGN KEY NOT NULL  AUTOINCREMENT  );";

和关联方法:

public long insertTagPage(LiensTagPage liensTagPage) {

    ContentValues values = new ContentValues();
    values.put(LiensTagPageSQLITE.COL_ID_PAGE, liensTagPage.getIdPage() );
    values.put(LiensTagPageSQLITE.COL_ID_TAG, liensTagPage.getIdTag() );

    return bdd.insert(PageSQLITE.TABLE_PAGE, null, values);
}

我的点击方法:

public void onClickAdd(View v) {

        strTitle = ((EditText) findViewById(R.id.editTitle)).getText().toString();
        datePage = (EditText) findViewById(R.id.editDate);
        tagPage = ((EditText) findViewById(R.id.editTag)).getText().toString();


Date d = (Date)datePage.getTag();

            Page page = new Page(strTitle, d );
            Tag tag = new Tag (tagPage);
            LiensTagPage lTp = new LiensTagPage(idPage, idTag);

            PageMgr pageMgr = new PageMgr(this);
            TagMgr tagMgr = new TagMgr(this);

            pageMgr.open();
            tagMgr.open();

           long ok = pageMgr.addPage(page);
            tagMgr.addTag(tag);

添加适用于标题和日期,但是当我想在与日期和标题相同的时间添加标签时,它不起作用。

在您的 onClickAdd 方法中执行以下操作:

    1. long pageId = pageMgr.addPage(page);
    1. long tagId = pageMgr.addTag(tag);
    1. liensTagPage.setIdPage(pageId);liensTagPage.setIdTag(tagId);
    1. long id = pageMgr.insertTagPage(liensTagPage);

这有意义吗?