Android 如何突出显示ExpandableListView选择?
当我选择childPosition时,它会高亮显示并持久化。但是,当我单击其组以再次折叠和展开时,高光消失 代码: MyListAdapter.java:Android 如何突出显示ExpandableListView选择?,android,android-listview,expandablelistview,onclicklistener,Android,Android Listview,Expandablelistview,Onclicklistener,当我选择childPosition时,它会高亮显示并持久化。但是,当我单击其组以再次折叠和展开时,高光消失 代码: MyListAdapter.java: public class MyListAdapter extends BaseExpandableListAdapter { private Context context; private ArrayList<HeaderInfo> deptList; public MyListAdapter(Context cont
public class MyListAdapter extends BaseExpandableListAdapter {
private Context context;
private ArrayList<HeaderInfo> deptList;
public MyListAdapter(Context context, ArrayList<HeaderInfo> deptList) {
this.context = context;
this.deptList = deptList;
}
@Override
public Object getChild(int groupPosition, int childPosition) {
ArrayList<DetailInfo> productList = deptList.get(groupPosition).getProductList();
return productList.get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean isLastChild,
View view, ViewGroup parent) {
DetailInfo detailInfo = (DetailInfo) getChild(groupPosition, childPosition);
if (view == null) {
LayoutInflater infalInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = infalInflater.inflate(R.layout.child_row, null);
}
TextView sequence = (TextView) view.findViewById(R.id.sequence);
sequence.setText(detailInfo.getSequence().trim() + ") ");
TextView childItem = (TextView) view.findViewById(R.id.childItem);
childItem.setText(detailInfo.getName().trim());
return view;
}
@Override
public int getChildrenCount(int groupPosition) {
ArrayList<DetailInfo> productList = deptList.get(groupPosition).getProductList();
return productList.size();
}
@Override
public Object getGroup(int groupPosition) {
return deptList.get(groupPosition);
}
@Override
public int getGroupCount() {
return deptList.size();
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isLastChild, View view,
ViewGroup parent) {
HeaderInfo headerInfo = (HeaderInfo) getGroup(groupPosition);
if (view == null) {
LayoutInflater inf = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inf.inflate(R.layout.group_heading, null);
}
TextView heading = (TextView) view.findViewById(R.id.heading);
heading.setText(headerInfo.getName().trim());
return view;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
}
公共类MyListAdapter扩展了BaseExpandableListAdapter{
私人语境;
私人ArrayList部门列表;
公共MyListAdapter(上下文,ArrayList deptList){
this.context=上下文;
this.deptList=deptList;
}
@凌驾
公共对象getChild(int-groupPosition,int-childPosition){
ArrayList productList=deptList.get(groupPosition.getProductList();
返回productList.get(childPosition);
}
@凌驾
公共长getChildId(int-groupPosition,int-childPosition){
返回子位置;
}
@凌驾
公共视图getChildView(int-groupPosition、int-childPosition、boolean-isLastChild、,
视图、视图组(父视图){
DetailInfo DetailInfo=(DetailInfo)getChild(groupPosition,childPosition);
如果(视图==null){
LayoutInflater infalInflater=(LayoutInflater)context.getSystemService(context.LAYOUT\u INFLATER\u SERVICE);
视图=充气器充气(R.layout.child_行,空);
}
TextView序列=(TextView)view.findViewById(R.id.sequence);
sequence.setText(detailInfo.getSequence().trim()+”);
TextView childItem=(TextView)view.findViewById(R.id.childItem);
setText(detailInfo.getName().trim());
返回视图;
}
@凌驾
公共整数getChildrenCount(整数组位置){
ArrayList productList=deptList.get(groupPosition.getProductList();
返回productList.size();
}
@凌驾
公共对象getGroup(int-groupPosition){
返回deptList.get(groupPosition);
}
@凌驾
public int getGroupCount(){
返回deptList.size();
}
@凌驾
公共长getGroupId(int-groupPosition){
返回组位置;
}
@凌驾
public View getGroupView(int-groupPosition、boolean-isLastChild、View-View、,
视图组(父级){
HeaderInfo HeaderInfo=(HeaderInfo)getGroup(groupPosition);
如果(视图==null){
LayoutInflater inf=(LayoutInflater)context.getSystemService(context.LAYOUT\u INFLATER\u SERVICE);
视图=inf.inf充气(R.layout.group\U标题,空);
}
TextView标题=(TextView)view.findViewById(R.id.heading);
heading.setText(headerInfo.getName().trim());
返回视图;
}
@凌驾
公共布尔表ID(){
返回true;
}
@凌驾
公共布尔值isChildSelectable(int-groupPosition,int-childPosition){
返回true;
}
}
行\u highlighter\u child.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/holo_blue_light" android:state_activated="true"/>
<item android:drawable="@android:color/holo_green_light" android:state_pressed="true"/>
<item android:drawable="@android:color/holo_orange_light"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/row_highlighter_child"
android:orientation="vertical" >
<TextView
android:id="@+id/sequence"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingLeft="35sp"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/childItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/sequence"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>
child.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/holo_blue_light" android:state_activated="true"/>
<item android:drawable="@android:color/holo_green_light" android:state_pressed="true"/>
<item android:drawable="@android:color/holo_orange_light"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/row_highlighter_child"
android:orientation="vertical" >
<TextView
android:id="@+id/sequence"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:paddingLeft="35sp"
android:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
android:id="@+id/childItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_toRightOf="@id/sequence"
android:textAppearance="?android:attr/textAppearanceMedium" />
</RelativeLayout>