0

名前と友達をデータベースに保存しました。

例えば ​​、

person A,and his friends B,C,D 
person Z,and his friends K,L,M 
person Q,and his friends P,O,N 

データベースから値を取得し、展開可能なリストビューに表示する方法。

つまり、個人 A、Z、Q はグループ名で、対応する友達は子の名前である必要があります ....

前もって感謝します

4

2 に答える 2

1

1> Bean を作成すると、属性 nameOfThePerson と frnds の配列を持つ PersonDetails と言うことができます。

public class PersonDetails {

    private String nameOfThePerson;
    private String[] frnds;

    public String nameOfThePerson() {
        return nameOfThePerson;
    }

    public void setName(String nameOfThePerson) {
        this.nameOfThePerson= nameOfThePerson;
    }

    public String[] getFrnds() {
        return frnds;
    }

    public void setFrnds(String[] frnds) {
        this.frnds= frnds;
    }

}

2> sqlite クエリを使用してデータベースから詳細を取得し、これらの Bean を arraylist に格納します。

public ArrayList<PersonDetails> getPersonDetails(Context context) {
        ArrayList<PersonDetails> lPersonDetailList = new ArrayList<PersonDetails>();
        PersonDetails lPersonDetails;
        try {
            dbName = context.openOrCreateDatabase(Constant.databaseName, Context.MODE_WORLD_WRITEABLE, null);
            String query = "SELECT * FROM "NAME OF UR TABLE";
            Cursor cursor = dbName.rawQuery(query, null);
            cursor.moveToFirst();
            if (cursor != null) {
                if (cursor.isFirst()) {
                    do {
                        lPersonDetails= new PersonDetails();
                        /*use gettersetters to feed in details to the lPersonDetails object.*/
                        lPersonDetailList .add(lPersonDetails);
                    } while (cursor.moveToNext());
                }
            }
            cursor.close();
            dbName.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return lPersonDetailList ;
    }

3>展開可能なリストビューに入れます。

public class ExpandableListAdapter extends BaseExpandableListAdapter {


public View getGroupView(int groupPosition, boolean isExpanded,
                View convertView, ViewGroup parent) {
// get the name of the person from the lPersonDetails object in arraylist position wise
}

public View getChildView(int groupPosition, int childPosition,
                boolean isLastChild, View convertView, ViewGroup parent) {
// get the name of the frnds from the lPersonDetails object in arraylist position wise from the string array
}
于 2012-11-01T08:27:14.383 に答える
1

あなたの人のラッパーを作成する

public class Person {

    String name;
    String[] friends;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String[] getFriends() {
        return friends;
    }

    public void setFriends(String[] friends) {
        this.friends = friends;
    }

}

次に、BaseExpandableListAdapter の ParentView に人の名前を入れ、Friends を Child に入れます。

public class ExpandableListAdapter extends BaseExpandableListAdapter {
List<Person>persons; // fill persons

public View getGroupView(int groupPosition, boolean isExpanded,
                View convertView, ViewGroup parent) {
persons.get(groupPosition).getName();
}

public View getChildView(int groupPosition, int childPosition,
                boolean isLastChild, View convertView, ViewGroup parent) {
persons.get(groupPosition).getFriends();
}
于 2012-11-01T07:54:12.223 に答える