如何在一个 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
方法中执行以下操作:
- long pageId = pageMgr.addPage(page);
- long tagId = pageMgr.addTag(tag);
- liensTagPage.setIdPage(pageId);liensTagPage.setIdTag(tagId);
- long id = pageMgr.insertTagPage(liensTagPage);
这有意义吗?
我想从 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
方法中执行以下操作:
- long pageId = pageMgr.addPage(page);
- long tagId = pageMgr.addTag(tag);
- liensTagPage.setIdPage(pageId);liensTagPage.setIdTag(tagId);
- long id = pageMgr.insertTagPage(liensTagPage);
这有意义吗?