directory search
android Manifest Manifest.permission Manifest.permission_group android.accessibilityservice AccessibilityService android.accounts Account android.app NotificationManager android.bluetooth BluetoothAdapter BluetoothClass BluetoothClass.Device BluetoothClass.Device.Major BluetoothClass.Service BluetoothDevice BluetoothServerSocket BluetoothSocket android.content SharedPreferences android.database.sqlite SQLiteCursorDriver SQLiteOpenHelper android.graphics Bitmap android.location LocationListener Geocoder GpsStatus GpsStatus.Listener GpsStatus.NmeaListener GpsSatellite android.media AudioFormat AsyncPlayer AudioRecord AudioRecord.OnRecordPositionUpdateListener ThumbnailUtils AudioManager android.net TrafficStats MailTo LocalSocket android.os AsyncTask AsyncTask.Status CountDownTimer Message MessageQueue HandlerThread android.text Html android.util JsonWriter android.view ContextMenu ContextMenu.ContextMenuInfo Display ViewManager View ViewStub ViewTreeObserver ViewParent WindowManager GestureDetector Gravity MenuInflater ScaleGestureDetector SoundEffectConstants android.view.inputmethod InputConnection InputMethod InputMethodSession BaseInputConnection InputMethodManager android.widget AbsListView AbsListView.LayoutParams AbsListView.OnScrollListener AbsListView.RecyclerListener AbsoluteLayout AbsoluteLayout.LayoutParams AbsSeekBar AbsSpinner AdapterView AdapterView.AdapterContextMenuInfo AdapterView.OnItemLongClickListener AdapterView.OnItemSelectedListener AdapterView.OnItemClickListener AnalogClock BaseAdapter BaseExpandableListAdapter Button CheckBox CheckedTextView Checkable Chronometer Chronometer.OnChronometerTickListener CompoundButton CompoundButton.OnCheckedChangeListener CursorAdapter CursorTreeAdapter DatePicker DatePicker.OnDateChangedListener DialerFilter DigitalClock EditText Filter Filter.FilterListener Filter.FilterResults ExpandableListAdapter ExpandableListView.OnChildClickListener ExpandableListView.OnGroupClickListener ExpandableListView.OnGroupCollapseListener ExpandableListView.OnGroupExpandListener Filterable Gallery Gallery.LayoutParams GridView GridLayout GridLayout.Alignment RadioGroup ImageView ImageView.ScaleType HorizontalScrollView ImageButton ImageSwitcher FilterQueryProvider ListAdapter ListView MediaController MultiAutoCompleteTextView MultiAutoCompleteTextView.CommaTokenizer MultiAutoCompleteTextView.Tokenizer QuickContactBadge RadioButton RatingBar RatingBar.OnRatingBarChangeListener RelativeLayout RemoteViews ResourceCursorAdapter ResourceCursorTreeAdapter Scroller ScrollView SearchView SearchView.OnCloseListener SearchView.OnQueryTextListener SearchView.OnSuggestionListener SeekBar SeekBar.OnSeekBarChangeListener SimpleAdapter SimpleAdapter.ViewBinder SimpleCursorAdapter SimpleCursorAdapter.CursorToStringConverter SimpleCursorAdapter.ViewBinder SimpleCursorTreeAdapter SimpleCursorTreeAdapter.ViewBinder SimpleExpandableListAdapter SlidingDrawer SlidingDrawer.OnDrawerCloseListener SlidingDrawer.OnDrawerOpenListener SlidingDrawer.OnDrawerScrollListener Spinner SpinnerAdapter WrapperListAdapter TabHost TabHost.TabSpec TextView TimePicker TimePicker.OnTimeChangedListener Toast TableLayout TableLayout.LayoutParams TableRow TableRow.LayoutParams TabWidget TextSwitcher ToggleButton TwoLineListItem VideoView ViewAnimator ViewFlipper ViewSwitcher ViewSwitcher.ViewFactory ZoomButtonsController ZoomButtonsController.OnZoomListener ZoomButton ZoomControls dalvik.system DexFile
characters


SimpleExpandableListAdapter

译者博客:http://sd6733531.javaeye.com/

版本:Android 2.3 r1

 

结构

继承关系

public abstract class SimpleExpandableListAdapter extends BaseExpandableListAdapter

 

java.lang.Object

android.widget.BaseExpandableListAdapter

         android.widget.SimpleExpandableListAdapter

 

类概述

一个使用Map存储组元素和子元素的静态数据,使用XML资源文件定义组元素和子元素View如何显示的简单适配器。你可以区分指定组元素返回的数据是List<Map>类型。在ArrayList中的每个实体对应ExpandalbeList中的一个组。实体中的Map列表包含了组下的每行数据。你也可以指定一个XML文件来定义用于在组元素的View的显示。此时Map中的键值将与指定的View(XML中定义的view id)对应起来。子元素的处理情况类似。注意当可折叠的深度若不只1层,返回的数据将被指定为List类型。首个List对应子元素中所代表的组,第二个List对应孙子元素在子元素组中的位置。Map亦将支持这样的特殊元素。(子元素嵌套组元素的情况)

(译者注:ExpandableList支持深度大于1的情况。在andorid自带的ApiDomos的例子中有这个的代码:App/View/ExpandableList3)。

 

构造函数

public SimpleExpandableListAdapter (Context context, List<? extends Map<String, ?>> groupData, int groupLayout, String[] groupFrom, int[] groupTo, List<? extends List<? extends Map<String, ?>>> childData, int childLayout, String[] childFrom, int[] childTo)

构造函数

参数

                   context        SimpleExpandableListAdapter关联的ExpandableListView的上下文。

                   groupData     一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录

                   groupLayout   显示组元素的资源文件。该资源文件定义了如何显示组元素。该布局文件必须至少包括groupTo中所定义的View(groupTo中的View id数组必须都在该布局文件中找到)

                   groupFrom       一个键值列表。对应与组相关联的Map中的键值。

                   grouptTo           View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前NView从前NgroupFrom参数获得列元素的数据。

                   childData       一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

                   childLayout       显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View(childTo中的view id数组必须都在该布局文件中找到)

                   childFrom        定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

                   childTo      View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前NView从前NchildFrom参数获得列元素的数据。

 

public SimpleExpandableListAdapter (Context context, List<? extends Map<String, ?>> groupData, int expandedGroupLayout, int collapsedGroupLayout, String[] groupFrom, int[] groupTo, List<? extends List<? extends Map<String, ?>>> childData, int childLayout, String[] childFrom, int[] childTo)

构造函数。

参数

                   context        SimpleExpandableListAdapter关联的ExpandableListView的上下文。

                   groupData     一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录

expandedGroupLayout           定义组展开时的ViewXML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View(groupTo中的View id数组必须都在该布局文件中找到)

collapasedGroupLayout            定义组折叠时的ViewXML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View(groupTo中的View id数组必须都在该布局文件中找到)

                   groupFrom       一个键值列表。对应与组相关联的Map中的键值。

                   grouptTo           View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前NView从前NgroupFrom参数获得列元素的数据。

                   childData         一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

                   childLayout       显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View(childTo中的view id数组必须都在该布局文件中找到)

                   childFrom        定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

                   childTo      View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前NView从前NchildFrom参数获得列元素的数据。

 

public SimpleExpandableListAdapter (Context context, List<? extends Map<String, ?>> groupData, int expandedGroupLayout, int collapsedGroupLayout, String[] groupFrom, int[] groupTo, List<? extends List<? extends Map<String, ?>>> childData, int childLayout, int lastChildLayout, String[] childFrom, int[] childTo)

构造函数。

参数

                   context        SimpleExpandableListAdapter关联的ExpandableListView的上下文。

                   groupData     一个Maps列表(List)。集合中的每个字典项与可折叠列表中的每个组元素一致。字典项提供了组元素包含的所有数据,并包含所有在"groupFrom"中指定的记录

expandedGroupLayout  定义组展开时的ViewXML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View(groupTo中的View id数组必须都在该布局文件中找到)

collapasedGroupLayout  定义组折叠时的ViewXML资源布局。该布局文件应当至少包括所有在groupTo中所定义的View(groupTo中的View id数组必须都在该布局文件中找到)

                   groupFrom       一个键值列表。对应与组相关联的Map中的键值。

                   grouptTo  View应当显示groupFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前NView从前NgroupFrom参数获得列元素的数据。

                   childData         一个Map列表的列表。外部列表中的每个实体对应一个组(按照组的位置编号)。在内部列表的每个实体对应某个组的子元素(按照子元素的位置编号)。该Map对应了子元素的数据。(按照childFrom数组中的值编号)。该Map包含了每个子元素的数据,并且应当包括所有在childFrom中指定的实体。

                   childLayout       显示子元素的资源文件。该资源文件定义了如何显示子元素。布局文件至少应该包括所有在childTo中定义的View(childTo中的view id数组必须都在该布局文件中找到)

lastChildLayout  定义每组中最后一个子元素的View资源布局情况。该布局文件应当至少包括所有在childTo中所定义的View(childTo中的View id数组必须都在该布局文件中找到)

                   childFrom        定义显示子元素的列名。该列名与childData中的子元素属性(字典键值)对应。

                   childTo        View应当显示childFrom参数中的所有列数据。这些数据应当都用TextView来显示。列表中的前NView从前NchildFrom参数获得列元素的数据。

 

公共方法

public Object getChild (int groupPosition, int childPosition)

 

public long getChildId (int groupPosition, int childPosition)

(译者注:获取与在给定组给予孩子相关的数据。)

 

public View getChildView (int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent)

(译者注:获取子项)

 

public int getChildrenCount (int groupPosition)

(译者注:返回在指定GroupChild数目。)

 

public Object getGroup (int groupPosition)

 

public int getGroupCount ()

(译者注:返回Group的总数目。)

 

public long getGroupId (int groupPosition)

 

public View getGroupView (int groupPosition, boolean isExpanded, View convertView, ViewGroup parent)

(译者注:获取父项)

 

public boolean hasStableIds ()

 

public boolean isChildSelectable (int groupPosition, int childPosition)

(译者注:是否child获得焦点

 

public View newChildView (boolean isLastChild, ViewGroup parent)

新建一个子元素View

        参数

            isLastChild   child是否是组中的最后一个元素

            parent       新的View的最终父亲。

        返回

            新的子元素View对象。

 

public View newGroupView (boolean isExpanded, ViewGroup parent)

新建一个组元素View

        参数

            isExpanded 该组元素是否当前处于折叠状态

            parent   View的最终父亲。

        返回

            新的组元素View对象。

 

补充

    文章精选

        ExpandableListActivitySimpleExpandableListAdapter的使用方法

        Expandable lists[blogspot]

示例代码:

        List<Map<String, String>> groupData = new ArrayList<Map<String, String>>();

        List<List<Map<String, String>>> childData = new ArrayList<List<Map<String, String>>>();

        for (int i = 0; i < 20; i++) {

            Map<String, String> curGroupMap = new HashMap<String, String>();

            groupData.add(curGroupMap);

            curGroupMap.put(NAME, "Group " + i);

            curGroupMap.put(IS_EVEN, (i % 2 == 0) ? "This group is even" : "This group is odd");

           

            List<Map<String, String>> children = new ArrayList<Map<String, String>>();

            for (int j = 0; j < 15; j++) {

                Map<String, String> curChildMap = new HashMap<String, String>();

                children.add(curChildMap);

                curChildMap.put(NAME, "Child " + j);

                curChildMap.put(IS_EVEN, (j % 2 == 0) ? "This child is even" : "This child is odd");

            }

            childData.add(children);

        }

        

        // Set up our adapter

        mAdapter = new SimpleExpandableListAdapter(

                this,

                groupData,

                android.R.layout.simple_expandable_list_item_1,

                new String[] { NAME, IS_EVEN },

                new int[] { android.R.id.text1, android.R.id.text2 },

                childData,

                android.R.layout.simple_expandable_list_item_2,

                new String[] { NAME, IS_EVEN },

                new int[] { android.R.id.text1, android.R.id.text2 }

                );


Previous article: Next article: