私はAndroid 用のアプリを開発しており、 ExpandableListActivityを使用しています。
次の形式の sqlite db からデータを抽出しています。
Id | Category | Name
CODE
は、データを取得するコードです。
List<String> groups = new ArrayList<String>();
List<String> books = new ArrayList<String>();
List<String> elecs = new ArrayList<String>();
List<List<String>> children = new ArrayList<List<String>>();
Cursor c = mDbHelper.fetchAllItems();
startManagingCursor(c);
// for all rows
for(int i=0; i<c.getCount(); i++)
{
c.moveToNext();
String t = c.getString(c.getColumnIndex("category"));
switch (getCat(t))
{
case Books:
books.add(c.getString(c.getColumnIndex("name")));
Log.d("FROM: ", c.getString(c.getColumnIndex("name")));
if(!(groups.contains("Books"))) groups.add("Books");
break;
case Electronics:
elecs.add(c.getString(c.getColumnIndex("name")));
Log.d("FROM: ", c.getString(c.getColumnIndex("name")));
if(!(groups.contains("Electronics"))) groups.add("Electronics");
break;
default:
break;
} // end switch
} // end for loop
children.add(books);
children.add(elecs);
ここでこのアプリを実行したときの出力は、画面がどのように見えるかです:
Books
Electronics
BooksまたはElectronicsをクリックすると、すべてが表示されます。このような:
Books
[c programming, perl]
[cd, laptop, psp]
Electronics
[c programming, perl]
[cd, laptop, psp]
問題
私は問題がこのメソッド(getChild)から来ていると思います:
public class MyExpandableListAdapter extends BaseExpandableListAdapter {
List<String> GRP;
List<List<String>> CHLD;
public MyExpandableListAdapter(List<String> grps, List<List<String>> chldrn) {
GRP = grps;
CHLD = chldrn;
}
...
...
public Object getChild(int groupPosition, int childPosition) {
// CHLD[groupPosition][childPosition]; ORIGINAL, where CHLD was a 2d array
return CHLD.get(childPosition); MODIFIED
}
文字列のリストのリストを 2 次元配列に変換する必要がありますか?