您的位置:首页 > 其它

使用ExpandableListActivity显示扩展列表

2013-05-20 12:17 211 查看
使用ExpandableListActivity显示扩展列表
上次我们讲了使用SQLite数据库存储数据,那么我们存储在SQLite数据库中的数据如和将它显示在Android客户端呢?这里我们使用ExpandableListActivity将数据显示在Android客户端。
我们的工程使用上次SQLite存储数据的那个例子使用SQLite数据库存储数据,完成效果:


之前SQLite数据库中的数据:


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ExpandableListView
android:id="@id/android:list"
android:layout_width="match_parent"
android:layout_height="match_parent" />

</RelativeLayout>
MainActivity类:
public class MainActivity extends ExpandableListActivity {

private ExpandableListAdapter myAdapter;
private DBOpenHelper dbOpenHelper;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dbOpenHelper = new DBOpenHelper(MainActivity.this);

// 查询组数据
Cursor groupCursor = queryGroupCursor();

myAdapter = new MyExpandableListerAapter(MainActivity.this,
groupCursor, android.R.layout.simple_expandable_list_item_1,
android.R.layout.simple_expandable_list_item_1,
new String[] { "typeName" }, new int[] { android.R.id.text1 },
new String[] { "name" }, new int[] { android.R.id.text1 });
setListAdapter(myAdapter);
}

private Cursor queryGroupCursor() {
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
Cursor groupCursor = db.query("MenuTbl",
new String[] { "distinct typeName" }, null, null, null, null,
null);
return groupCursor;
}

public class MyExpandableListerAapter extends SimpleCursorTreeAdapter {

public MyExpandableListerAapter(Context context, Cursor cursor,
int groupLayout, int childLayout, String[] groupFrom,
int[] groupTo, String[] childFrom, int[] childTo) {
super(context, cursor, groupLayout, groupFrom, groupTo,
childLayout, childFrom, childTo);
}

@Override
protected Cursor getChildrenCursor(Cursor groupCursor) {
String typeName = groupCursor.getString(groupCursor
.getColumnIndex("typeName"));
System.out.println(typeName);

// 查询子数据
Cursor childCursor = queryChildCursor(typeName);
return childCursor;
}

@Override
public long getChildId(int groupPosition, int childPosition) {
Cursor childCursor = (Cursor) getChild(groupPosition, childPosition);
return childCursor.getLong(0);
}

@Override
public long getGroupId(int groupPosition) {
Cursor groupCursor = (Cursor) getGroup(groupPosition);
return groupCursor.getLong(0);
}

private Cursor queryChildCursor(String typeName) {
SQLiteDatabase db = dbOpenHelper.getReadableDatabase();
Cursor childCursor = db.query("MenuTbl", new String[] { "name" },
"typeName=\"" + typeName + "\"", null, null, null, null);
return childCursor;
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: