UIWebView で複数のボタンを作成する必要があります。そこで、ボタンにタグを使用しました。そして、ボタンタグを INTEGER でデータベースに保存します。しかし、それは適切な価値を保存していません。データベース内のテキストを持つ各ボタン タグ。後で取得する必要があります。ただし、最後の値をデータベースに保存し、他のボタンをクリックすると、最後に更新された値のみが取得されます。なぜこれが起こるのですか?
テーブル:
textnotes text_id button_id
hi 1 1
how are you 1 3
im fine 2 7
This is test 2 11
UI ボタン:
int gTag = 1;
webviewbutton.tag = gTag;
gTag++;
[wbCont.scrollView addSubview:webviewbutton];
入れる:
const char *sqlInsert = [[NSString stringWithFormat:@"insert into textnote (textnotes,text_id,button_id ) values ('%@','%@','%ld')", txtview.text,artID,(long)webviewbutton.tag] cStringUsingEncoding:NSUTF8StringEncoding];
データベースからテキスト付きのボタン タグを取得します。
textArray=[[NSMutableArray alloc]init];
webbutton_art=[[NSMutableArray alloc]init];
webbutton_button=[[NSMutableArray alloc]init];
if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
const char *sql = [[NSString stringWithFormat:
@"SELECT textnotes,text_id,button_id FROM textnote where button_id = '%ld' AND text_id = '%@' ",(long)webviewbutton.tag,artID]cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"sql is %s",sql);
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
txtstring = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 0)];
webbutton_textartid = sqlite3_column_int(statement, 1);
webbutton_buttontag= sqlite3_column_int(statement, 2);
[textArray addObject:txtstring];
[webbutton_art addObject:@(webbutton_textartid)];
[webbutton_button addObject:@(webbutton_buttontag)];
if( webbutton_art && webbutton_button ){
for(int i=0;i<[textArray count];i++){
txtview = [[UITextView alloc]initWithFrame:CGRectMake(0,0,320,568)];
txtview.font = [UIFont fontWithName:@"Helvetica" size:12];
txtview.text=[textArray objectAtIndex:i];
[self.view addSubview:txtview];
}
}