次のコードは、表示アクティビティのテキスト ビューにエントリを出力するための文字列を返しますが、すべてのエントリを一度に送信することでそれを行うため、一度に 1 つずつ処理することはできません。
これは、データを返すためにデータベースで使用される関数です。
public String getData() {
String[] columns = new String[] { KEY_ROWID, KEY_NAME, KEY_DATE,
KEY_MONTH, KEY_YEAR };
Cursor c = ourDatabase.query(DATABASE_TABLE, columns, null, null, null,
null, null);
String result = "";
// int iRow = c.getColumnIndex(KEY_ROWID);
int iName = c.getColumnIndex(KEY_NAME);
int iDate = c.getColumnIndex(KEY_DATE);
int iMonth = c.getColumnIndex(KEY_MONTH);
int iYear = c.getColumnIndex(KEY_YEAR);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext())
{
result = result + " " + c.getString(iName) + "\t\t"
+ c.getString(iDate) + "\t\t" + c.getString(iMonth)+ "\t\t" + c.getString(iYear) + "\n";
}
return result;
}
これは、テキスト ビューでエントリを出力するクラスです。
public class DBView extends Activity {
TextView tv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.dbview);
tv = (TextView) findViewById(R.id.SQLinfo);
DataBaseClass info = new DataBaseClass(this);
info.open();
String data = info.getData();
info.close();
tv.setText(data);
}
}
私がやろうとしているのは、データベース内のエントリ数に応じてリスト ビューを作成することです。たとえば、エントリが 1 つしかない場合、名前、日付、月、年を含むリスト項目が 1 つだけ生成されます。文字列アダプターとリスト アダプターを使用してみましたが、動作しませんでした。