0

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];

             }



    }
4

1 に答える 1

0

次のような整数変数を宣言します。

int offset;

そして、次のようにします。

for (int i = 0; i<[textArray count]; i++) {



        UITextView *txtview = [[UITextView alloc]initWithFrame:CGRectMake(100,100+offset,320,568)];

        txtview.font = [UIFont fontWithName:@"Helvetica" size:12];


        txtview.text=[textArray objectAtIndex:i];

        [self.view addSubview:txtview];

        offset = offset + 50;
    }
于 2013-11-08T05:18:16.390 に答える