0

SQLite データベースからデータを取得し、Android でテーブル形式で表示しようとしています。データを表示するコードは次のとおりです。

    Cursor c=db.getAllTitles();
    if(c.moveToFirst())
    {
        do
        {
            DisplayTitle(c);
        }while(c.moveToNext());
    }

関数は次のDisplayTitleようになります。

public void DisplayTitle(Cursor c)
{   
    txt.setText(c.getString(0));
    txt.setTextColor(Color.blue(1));

    tr.addView(txt);
    tl.addView(tr);
}

ここに、クラスでグローバルに宣言しtxtた変数があります。は変数であり、クラスでグローバルに宣言した変数です。TextViewtlTableLayouttrTableRow

これはうまくいきません。ただし、Toast関数を使用すると、データベースから取得したデータが表示されます。助けてください。

コード全体へのリンクは次のとおりです。

http://pastebin.me/24d7e33ce334e56087dcb657081684e9

4

2 に答える 2

1

私の推測では、データ レコードごとに、新しいテキスト ビューで新しいテーブル行を宣言する必要があると思います。説明からすると、すべてのデータ レコードに対して同じテーブル行と同じテキスト ビューを使用する必要はないようです。

それでも問題が解決しない場合は、より完全なコード例を投稿してください。できれば、他の人があなたの問題を再現できるように完全にします。また、「これは機能しません」の意味を説明してください。

于 2011-04-07T19:45:36.697 に答える
0

このコードを試してください...

public Cursor getAll()  
{
   return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME,
   KEY_MOVES, KEY_TIME}, null, null, null, null, null);
}

その後、このコードをメインアクティビティで使用します

private void getall()  
{

   db.open();

   Cursor c = db.SortAllRows();
   int i=1;
   if (c.moveToFirst())   
   {        
      do
      {
         DisplayContact(c,i++);
      } while (c.moveToNext());
   }
   c.close();
   db.close();
}

public void DisplayContact(Cursor c,int row )   
{            
 String name11 = c.getString(1) + c.getString(2) + c.getString(3);           
 tv1.setText(name11 );
}
于 2012-10-23T04:54:10.547 に答える