0
こんにちは私は、次のコードを試して、テーブルのレコードのリストを出力としてリストビューに正しく渡しました。アンドロイドアプリケーション開発のSQLiteデータベースの動作
私はMain_Activityクラスの横にある次の2つのメソッドについてコメントしても、データベースレコードはロードされません。 createTable(); insertData(); ;
私はそれをシャットダウンした後に同じアプリケーションを開いたときに、テーブルを作成して同じレコードセットを再度挿入する必要があるのだろうかと思っていました。
は、誰もが...それはそうなぜ起こるかのアイデアを持っています..あなたは、DBを作成しているあなたのtry文で
public class Main_Activity extends ListActivity {
private static String SAMPLE_TABLE_NAME = "PERSONS_TABLE";
private SQLiteDatabase sampleDB = null;
private List<String> results = new ArrayList<String>();
private Cursor cursor = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
try
{
sampleDB = openOrCreateDatabase("NAME", MODE_PRIVATE, null);
createTable();
insertData();
lookupData();
this.setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,results));
}
catch (SQLiteException se)
{
Log.e(getClass().getSimpleName(), "Could not create or Open the database");
}
finally
{
if (sampleDB != null)
sampleDB.execSQL("DELETE FROM " + SAMPLE_TABLE_NAME);
sampleDB.close();
}
}
private void createTable()
{
sampleDB.execSQL("CREATE TABLE IF NOT EXISTS " +
SAMPLE_TABLE_NAME +
" (PERSON_NAME VARCHAR, " +
" COUNTRY VARCHAR, " +
" AGE INT(3));");
}
private void insertData()
{
sampleDB.execSQL("INSERT INTO " + SAMPLE_TABLE_NAME + " Values ('James','ENGLAND',25);");
sampleDB.execSQL("INSERT INTO " + SAMPLE_TABLE_NAME + " Values ('Dave','USA',18);");
sampleDB.execSQL("INSERT INTO " + SAMPLE_TABLE_NAME + " Values ('Jean-Paul','FRANCE',33);");
sampleDB.execSQL("INSERT INTO " + SAMPLE_TABLE_NAME + " Values ('Sergio','SPAIN',42);");
sampleDB.execSQL("INSERT INTO " + SAMPLE_TABLE_NAME + " Values ('Hitori','JAPAN',73);");
}
private void lookupData()
{
cursor = sampleDB.rawQuery("SELECT PERSON_NAME, COUNTRY, AGE FROM " +
SAMPLE_TABLE_NAME +
" where AGE > 10 ", null);
if (cursor != null)
{
if (cursor.moveToFirst())
{
do
{
String personName = cursor.getString(cursor.getColumnIndex("PERSON_NAME"));
String country = cursor.getString(cursor.getColumnIndex("COUNTRY"));
int age = cursor.getInt(cursor.getColumnIndex("AGE"));
results.add("" + personName + ", " + country + ", " + age);
}
while (cursor.moveToNext());
}
cursor.close();
}
}
}
ありがとうございました....ポイントを得ました... !!!! – JibW
あなたが正しいと有用であれば答えを受け入れるべきです;) – woodshy