Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MainActivity extends AppCompatActivity {
- ExpandableListAdapter listAdapter;
- ExpandableListView expListView;
- List<String> listDataHeader;
- HashMap<String, List<String>> listDataChild;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- // get the listview
- expListView = findViewById(R.id.lvExp);
- // preparing list data
- prepareListData();
- listAdapter = new ExpandableListAdapter(this, listDataHeader, listDataChild);
- // setting list adapter
- expListView.setAdapter(listAdapter);
- // PEGA A POSIÇÃO DO ITEM DA LISTA
- expListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
- @Override
- public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
- Log.i("LOG", "Posição: " + childPosition);
- parent.collapseGroup(0);
- return false;
- }
- });
- // TROCA O ICONE DE EXPANSAO
- expListView.setGroupIndicator(getResources().getDrawable(R.drawable.ic_launcher_background));
- }
- private void prepareListData() {
- listDataHeader = new ArrayList<>();
- listDataChild = new HashMap<>();
- // Adding child data
- listDataHeader.add("Lista de itens");
- // Adding child data
- List<String> itens = new ArrayList<String>();
- itens.add("Item 1");
- itens.add("Item 2");
- itens.add("Item 3");
- itens.add("Item 4");
- itens.add("Item 5");
- listDataChild.put(listDataHeader.get(0), itens); // Header, Child data
- }
- }
- public class ExpandableListAdapter extends BaseExpandableListAdapter {
- String headerTitle;
- private Context ctx;
- private List<String> listDataHeader; // header titles
- // child data in format of header title, child title
- private HashMap<String, List<String>> listDataChild;
- public ExpandableListAdapter(Context ctx, List<String> listDataHeader, HashMap<String, List<String>> listChildData) {
- this.ctx = ctx;
- this.listDataHeader = listDataHeader;
- this.listDataChild = listChildData;
- }
- @Override
- public Object getChild(int groupPosition, int childPosititon) {
- return this.listDataChild.get(this.listDataHeader.get(groupPosition)).get(childPosititon);
- }
- @Override
- public long getChildId(int groupPosition, int childPosition) {
- return childPosition;
- }
- @Override
- public View getChildView(int groupPosition, final int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
- final String childText = (String) getChild(groupPosition, childPosition);
- if (convertView == null) {
- LayoutInflater infalInflater = (LayoutInflater) this.ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- convertView = infalInflater.inflate(R.layout.item_lista, null);
- }
- TextView tvItemLista = convertView.findViewById(R.id.tvw_item_nome);
- tvItemLista.setText(childText);
- return convertView;
- }
- @Override
- public int getChildrenCount(int groupPosition) {
- return this.listDataChild.get(this.listDataHeader.get(groupPosition))
- .size();
- }
- @Override
- public Object getGroup(int groupPosition) {
- return this.listDataHeader.get(groupPosition);
- }
- @Override
- public int getGroupCount() {
- return this.listDataHeader.size();
- }
- @Override
- public long getGroupId(int groupPosition) {
- return groupPosition;
- }
- @Override
- public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) {
- headerTitle = (String) getGroup(groupPosition);
- if (convertView == null) {
- LayoutInflater infalInflater = (LayoutInflater) this.ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- convertView = infalInflater.inflate(R.layout.list_group, null);
- }
- TextView tvTitleHeader = convertView.findViewById(R.id.tvw_title_header);
- tvTitleHeader.setTypeface(null, Typeface.BOLD);
- tvTitleHeader.setText(headerTitle);
- return convertView;
- }
- public void changeHeader(String text){
- headerTitle = text;
- }
- @Override
- public boolean hasStableIds() {
- return false;
- }
- @Override
- public boolean isChildSelectable(int groupPosition, int childPosition) {
- return true;
- }
- }
Add Comment
Please, Sign In to add comment