Android向けのプログラミング方法を学び始めたばかりですが、今はいくつかの疑問に悩まされています。
複数のテーブルを持つ1つのSQLiteデータベースと、いくつかのフィールドを持つ各テーブルがあります。
データベースを管理するためのクラスを作成し、関数の1つが次のようなものであると想像しました。
public Cursor getGroupData() {
String[] values = new String[] {_ROWID, _NAME, _AGE, _PHONE};
Cursor c = db.query(BD_TABLE, values, null, null, null, null, null);
return c;
}
今、私は2つの状況のうちの1つを持っています。
最初の状況
たとえば、クエリで返されたすべての名前をListViewに表示したいとします。これにより、ユーザーは名前をクリックすると、新しいアクティビティが表示されます(すべてのユーザー情報を含むレイアウトを想像してください)
2番目の状況
たとえば、クエリで返されたすべての名前をListViewに表示したいとします。これにより、ユーザーは名前をクリックすると、新しいクエリが実行されます(そのユーザーから他のデータを取得することを想像してください)。クエリの結果、さまざまなデータが返されます。ここでも、ListViewのフィールド(アドレスなど)を表示したいと思います。これで、ユーザーがアドレスをクリックすると、新しいアクティビティが表示されます(たとえば、アドレスに関する情報を含むレイアウト)。
どちらの状況でも、名前またはアドレスを選択するだけですが、SQLiteによって返されるすべてのデータが利用可能である必要があります。たとえば、最初の状況では、名前を選択すると、レイアウトに次のように表示されます。連絡先情報ですが、クエリの結果、年齢、電話番号も利用できる必要があります。
今のところ私は次のようなことをしています:
Cursor values = db.getGroupData();
// Now I'm thinking in putting some code to iterate over the cursor and put what I want to display on my listview on a string array
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, values_I_what_to_show);
setListAdapter(adapter);
これに伴う問題は、データを文字列配列に配置しているが、クエリによって返されるすべてのデータが必要になることです。
私をある方向に向けてもらえますか?
よろしく、