I have been searching around google for two days but it is very hard found any luck with my problem. what I'm trying to achieve is I want to create an ExpandableListView
in which every child has two value one to the right and another to the left, following question: How to achieve Expandablelistview child custom layout? was relevant but not fully as there are some elements which were missing
This how I want to design my user interface, my array is something like this
[Parent 1 =[{Child 1, Child 1.1},{child 2,child 2.1},{child 3,child 3.1},{child 4, child 4.1},{child 5, child 5.1}],Parent 1=[{}]]
so on and so forth, now please help me out with the solution so that I can create a UI something like given
Use this CustomAdapter
and use custom enter code here
layout as you want just create your layout.xml
and use in this adapter
and try to Improve your R&d skills
it is not a very big task , you spend two days to achieve it. any site does not provide code
as you want thay only guide us, we need to improve that code as per our requirement
public class CustomAdapter extends BaseExpandableListAdapter {
Context context;
ArrayList<WeblListHeader> webHeader;
public CustomAdapter(Context context, ArrayList<WeblListHeader> webHeader) {
this.context = context;
this.webHeader = webHeader;
}
@Override
public int getGroupCount() {
return webHeader.size();
}
@Override
public int getChildrenCount(int i) {
return webHeader.get(i).getAl_state().size();
}
@Override
public Object getGroup(int i) {
return webHeader.get(i);
}
@Override
public Object getChild(int i, int i1) {
return webHeader.get(i).getAl_state().get(i1);
}
@Override
public long getGroupId(int i) {
return i;
}
@Override
public long getChildId(int i, int i1) {
return i1;
}
@Override
public boolean hasStableIds() {
return false;
}
@Override
public View getGroupView(int i, boolean isExpanded, View view, ViewGroup viewGroup) {
if (view==null){
LayoutInflater layoutInflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.your_expend_header_layout, null);
}
TextView tv_state = (TextView)view.findViewById(R.id.tv_name);
ImageView iconExpend = (ImageView)view.findViewById(R.id.iconExpend);
if (isExpanded) {
iconExpend.setImageResource(R.drawable.arrow_up_selected);
tv_state.setTextColor(context.getResources().getColor(R.color.selectedText));
} else {
iconExpend.setImageResource(R.drawable.arrow_down_unselect);
tv_state.setTextColor(context.getResources().getColor(R.color.white));
}
tv_state.setText(webHeader.get(i).getStr_country());
return view;
}
@Override
public View getChildView(final int i, final int i1, boolean b, View view, ViewGroup viewGroup) {
if (view==null){
LayoutInflater layoutInflater = (LayoutInflater) this.context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = layoutInflater.inflate(R.layout.your_child_layout, null);
}
TextView tv_state = (TextView)view.findViewById(R.id.tv_name);
tv_state.setText(webHeader.get(i).getAl_state().get(i1).getStr_name());
tv_state.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
});
return view;
}
@Override
public boolean isChildSelectable(int i, int i1) {
return false;
}
let me know if it works for you and if any issue in this.