Android学习第十六天----expanablelistview应用
在listview中添加子listview组件
package cn.core.test; import android.app.Activity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnChildClickListener; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.ExpandableListView.OnGroupCollapseListener; import android.widget.ExpandableListView.OnGroupExpandListener; import android.widget.Toast; public class MainActivity extends Activity { private ExpandableListView mExpandableListView = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mExpandableListView = (ExpandableListView) findViewById(R.id.expandableListView1); mExpandableListView.setAdapter(new MyExpanableListView(this)); mExpandableListView.setOnChildClickListener(new OnChildClickListener() { @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { Toast.makeText(MainActivity.this, "dianjizizu", Toast.LENGTH_SHORT).show(); return false; } }); mExpandableListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { Toast.makeText(MainActivity.this, "dian ji 组", Toast.LENGTH_SHORT).show(); return false; } }); mExpandableListView .setOnGroupExpandListener(new OnGroupExpandListener() { @Override public void onGroupExpand(int groupPosition) { Toast.makeText(MainActivity.this, "组打开", Toast.LENGTH_SHORT).show(); } }); mExpandableListView .setOnGroupCollapseListener(new OnGroupCollapseListener() { @Override public void onGroupCollapse(int groupPosition) { Toast.makeText(MainActivity.this, "组关闭", Toast.LENGTH_SHORT).show(); } }); } }
扩展的baseadapter
package cn.core.test; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.TextView; public class MyExpanableListView extends BaseExpandableListAdapter { String[] groupInfo = { "黑龙江", "福建", "四川" }; String[][] childInfo = { { "哈尔滨", "齐齐哈尔", "海拉尔" }, { "厦门", "福州", "泉州" }, { "成都", "庐州" } }; private Context context; public MyExpanableListView(Context context) { this.context = context; } @Override public int getGroupCount() { return groupInfo.length; } @Override public int getChildrenCount(int groupPosition) { return childInfo[groupPosition].length; } @Override public Object getGroup(int groupPosition) { return groupInfo[groupPosition]; } @Override public Object getChild(int groupPosition, int childPosition) { return childInfo[groupPosition][childPosition]; } @Override public long getGroupId(int groupPosition) { return 0; } @Override public long getChildId(int groupPosition, int childPosition) { return 0; } @Override public boolean hasStableIds() { return true; } @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { TextView textView = this.getTextView(); textView.setText(groupInfo[groupPosition]); return textView; } /** * 设置TextView对象的属性 * * @return textView对象 */ public TextView getTextView() { TextView textView = new TextView(context); textView.setPadding(60, 10, 0, 0); textView.setTextSize(20f); return textView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { TextView textView = this.getTextView(); textView.setText(childInfo[groupPosition][childPosition]); return textView; } @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } }
xml中
<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" tools:context=".MainActivity" > <ExpandableListView android:id="@+id/expandableListView1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" > </ExpandableListView> </RelativeLayout>