いくつかのテーブルを含むデータベースを正常に作成し、rawQueryを使用してすべてのテーブルを正常に選択しました。すべてのテーブルは類似しています。つまり、同じ列に異なる値があります。次に、新しいアクティビティですべてのテーブルを印刷する必要があります。TableLayoutに行を追加して実行したいと思います。新しい各テーブルは、新しい行に印刷されます。
訂正するか、別の方法を示してください。私はこのようにします:
//新しいテーブルを追加する
EditText title = (EditText)findViewById(R.id.Title);
String Title = title.getText().toString();
EditText d = (EditText)findViewById(R.id.director);
String Director = d.getText().toString();
SQLiteDatabase db = openOrCreateDatabase("Films", MODE_PRIVATE, null);
db.execSQL("CREATE TABLE IF NOT EXISTS " + Title + " (Title VARCHAR, Director VARCHAR);");
db.execSQL("INSERT INTO " + Title + "(Title) VALUES('" + Title + "');");
db.execSQL("INSERT INTO " + Title + " (Director) VALUES('" + Director + "');");
db.close();
startActivity(new Intent(Add.this, Browse.class));
//選択
SQLiteDatabase db = openOrCreateDatabase("Films", MODE_PRIVATE, null);
Cursor c = db.rawQuery("SELECT * FROM sqlite_master WHERE type='table'",null);
//新しいタイトルに出会ったときに新しい行を作成しようとしています
c.moveToFirst();
TableLayout tl = (TableLayout)findViewById(R.id.myTableLayout);
while (c.moveToNext())
{
if (c.getString(c.getColumnIndex("Title")) != null)
{
String Title = c.getString(c.getColumnIndex("Title"));
TableRow tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
/* Create a Button to be the row-content. */
TextView b = new TextView(this);
b.setText(Title);
b.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
/* Add Button to row. */
tr.addView(b);
tl.addView(tr,new TableLayout.LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
c.moveToNext();
}
しかし、DDMSは、行1の列-1からフィールドスロットを取得できないと言っています。
ちなみに、各テーブルには2つの列しかありませんが、CursorWindowには5つの列があると表示されます。
助けてください!