2

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に負けると思います。

誰かが私を助けてくれることを願っています。

ありがとう!

4

1 に答える 1