0

sqlite データベースの関数のカーソルから配列を取得しました。他のページからデータを取り込みやすくするために、配列に複数の項目を追加したいと考えています。つまり、mArray("ID"), mArray("Name") を実行したい (関数の配列からリストビューを作成し、ID から名前に簡単にアクセスできるようにしたい)

配列にIDのみを保存する現時点での私のコードは次のとおりです。

public static Array GetRooms(String StationID) {

    File dbfile = new File(Global.currentDBfull); 
    SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(dbfile, null);
    Cursor c = db.rawQuery("select * from StationObjects where ObjectID = 0 and StationID = " + StationID , null);  

       c.moveToFirst();
       Log.e("TomDebug", c.getString(c.getColumnIndex("SubGroupName")));

     ArrayList<String> mArrayList = new ArrayList<String>();
       c.moveToFirst();
       while(!c.isAfterLast()) {
            mArrayList.add(c.getString(c.getColumnIndex("SubGroupName")));
            c.moveToNext();
       }


    return null;

}

編集:少し明確にするために。

疑似コードでは、次のことができるようにしたいと思います:

 while(!c.isAfterLast()) {
            mArrayList.name.add(c.getString(c.getColumnIndex("Name")));
            mArrayList.type.add(c.getString(c.getColumnIndex("Type")));
            mArrayList.ID.add(c.getString(c.getColumnIndex("ID")));
            c.moveToNext();
       }

コードのどこでもできるように

Array curRooms = GetRooms("1234")

String name = curRooms.Name
String type = curRooms.Type 

(私は、配列と文字列の混合がそこでは機能しないことを知っていますが、単なる例です)

4

1 に答える 1

0

文字列ではなく実際のデータ構造が必要なようです。ORMなどを使用してこれを行う方法はいくつかありますが、基本的な例は次のようになり、データベースからフィールドに入力できます。

public class StationObject
{
  public String name;
  public String type;
  public String id;
}

//pseudocode
for each result in resultset
  fill temp StationObject with fields
  add temp to list
于 2012-09-17T16:23:39.733 に答える