Assets に事前に入力された DB があり、アプリの起動後にコピーされて開かれます。rawQueryで列名を表示するアクティビティがあります
Cursor c = database.rawQuery("SELECT _id, Name from DB
ORDER BY Name ASC", null);
ArrayList<String> values = new ArrayList<String>();
while (c.moveToNext()) {
values.add(c.getString(c.getColumnIndex("Name")));
}
c.close();
他の列を表示する新しいインテント onItemClick を開始します (新しいアクティビティは i.putExtra で「名前」変数を取得します)
private void getSQLData() {
Bundle extras = getIntent().getExtras();
String Name = extras.getString("Name");
DataBaseHelper myDbHelper = new DataBaseHelper(null);
myDbHelper = new DataBaseHelper(this);
SQLiteDatabase database = myDbHelper.getWritableDatabase();
ListView lv = (ListView)findViewById(R.id.listView1);
Cursor c = database.rawQuery("SELECT * from DB WHERE Name='"+Name+"' ORDER BY Name ASC", null);
ArrayList<String> values = new ArrayList<String>();
while (c.moveToNext()) {
values.add(c.getString(c.getColumnIndex("Name")));
values.add(this.getString(R.string.x) + (c.getString(c.getColumnIndex("x"))+" "+this.getString(R.string.x)+":"));
values.add((c.getString(c.getColumnIndex("y")) + this.getString(R.string.y) + " " + this.getString(R.string.y)));
}
c.close();
ArrayAdapter<String> NamenDetails = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,
values);
}
lv.setAdapter(NamenDetails); }
必要なすべての SQL データを取得しますが、既定のビューで取得します。しかし、例のようにカスタマイズする必要があります:
カスタムリストビューとシンプルカーソアダプターを使って多くのチュートリアルを試しましたが、すべてArrayListStringに負けると思います。
誰かが私を助けてくれることを願っています。
ありがとう!