android中ExpandableListView应用案例

来源:互联网 发布:yum install eclipse 编辑:程序博客网 时间:2024/05/10 18:47
1.main.xml文件内容
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <ExpandableListView        android:id="@+id/ll_common_num_query"        android:layout_width="match_parent"        android:layout_height="match_parent" ></ExpandableListView></LinearLayout>

2.main_item_parent.xml文件内容

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingTop="10dip"    android:paddingBottom="10dip"    android:background="@drawable/item_background_selector"    android:orientation="vertical" >    <TextView        android:id="@+id/tv_commonnum_name"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:paddingLeft="30dip"         android:text="功能名字"        android:textColor="@color/textcolor"        android:textSize="18sp" /></LinearLayout>

3.main_item_child.xml文件内容

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:paddingTop="10dip"    android:paddingBottom="10dip"    android:background="@drawable/item_background_selector"    android:orientation="vertical" >    <TextView        android:id="@+id/tv_commonnum_name"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="功能名字"        android:textColor="@color/textcolor"        android:textSize="18sp" />    <TextView        android:id="@+id/tv_commonnum_number"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="电话"        android:textColor="@color/textcolor"        android:textSize="18sp" /></LinearLayout>
4.Activity代码

package cn.itcast.mobilesafe.ui;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.List;import android.app.Activity;import android.content.res.AssetManager;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.BaseExpandableListAdapter;import android.widget.ExpandableListView;import android.widget.TextView;import android.widget.Toast;import cn.itcast.mobilesafe.R;import cn.itcast.mobilesafe.domain.ClassList;import cn.itcast.mobilesafe.domain.CommonNum;import cn.itcast.mobilesafe.engine.CommonNumQueryService;public class CommonNumQueryActivity extends Activity {private ExpandableListView ll_common_num_query;private List<ClassList> groupInfoList ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.common_num);ll_common_num_query = (ExpandableListView) this.findViewById(R.id.ll_common_num_query);File file = new File("/sdcard/commonnum.db");if (!file.exists()) {copyFile();}groupInfoList = CommonNumQueryService.getGroupView();ll_common_num_query.setAdapter(new MyAdapter());}private void copyFile() {AssetManager manager = getAssets();try {InputStream in = manager.open("commonnum.db");File file = new File("/sdcard/commonnum.db");FileOutputStream fos = new FileOutputStream(file);byte[] buffer = new byte[1024];int len = 0;while(-1 != (len = in.read(buffer))){fos.write(buffer, 0, len);}fos.flush();fos.close();in.close();} catch (IOException e) {Toast.makeText(this, "常用号码文件不存在", 0).show();}}private class MyAdapter extends BaseExpandableListAdapter{@Overridepublic int getGroupCount() {return groupInfoList.size();}@Overridepublic int getChildrenCount(int groupPosition) {return CommonNumQueryService.getChildCount(groupPosition);}@Overridepublic Object getGroup(int groupPosition) {return groupInfoList.get(groupPosition);}@Overridepublic Object getChild(int groupPosition, int childPosition) {return null;}@Overridepublic long getGroupId(int groupPosition) {return groupPosition;}@Overridepublic long getChildId(int groupPosition, int childPosition) {return 0;}@Overridepublic boolean hasStableIds() {return false;}@Overridepublic View getGroupView(int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {View view;if(null != convertView){view = convertView;}else{view = View.inflate(CommonNumQueryActivity.this, R.layout.common_num_query_item_parent, null);}TextView tv_commonnum_name = (TextView) view.findViewById(R.id.tv_commonnum_name);tv_commonnum_name.setText(groupInfoList.get(groupPosition).getName());return view;}@Overridepublic View getChildView(int groupPosition, int childPosition,boolean isLastChild, View convertView, ViewGroup parent) {View view;if(null != convertView){view = convertView;}else{view = View.inflate(CommonNumQueryActivity.this, R.layout.common_num_query_item_child, null);}TextView tv_commonnum_name = (TextView) view.findViewById(R.id.tv_commonnum_name);TextView tv_commonnum_number = (TextView) view.findViewById(R.id.tv_commonnum_number);CommonNum info = CommonNumQueryService.getChildView(groupPosition).get(childPosition);tv_commonnum_name.setText(info.getName());tv_commonnum_number.setText(info.getNumber());return view;}@Overridepublic boolean isChildSelectable(int groupPosition, int childPosition) {return false;}}}

效果如下:




原创粉丝点击