Расширяемый список с пользовательским дочерним макетом в Android - PullRequest
0 голосов
/ 08 июня 2018

Я искал в Google два дня, но мне очень тяжело было решить мою проблему.я пытаюсь добиться того, чтобы создать ExpandableListView, в котором каждый дочерний элемент имеет два значения, одно справа и другое слева, следующий вопрос Как получить дочерний макет Expandablelistview? был актуаленно не полностью, поскольку есть некоторые элементы, которые отсутствовали

ExpandableListView View Design

Вот как я хочу создать свой пользовательский интерфейс, мой массив выглядит примерно так

[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=[{}]]

и так далее, теперь, пожалуйста, помогите мне с решением, чтобы я мог создать пользовательский интерфейс что-то вроде данного

1 Ответ

0 голосов
/ 08 июня 2018

Используйте этот CustomAdapter и используйте пользовательский макет enter code here так, как вы хотите, просто создайте layout.xml и используйте в этом adapter

и попытайтесь улучшить свой R&d skills, это не оченьбольшая задача, вы тратите два дня, чтобы достичь ее.ни один сайт не предоставляет code, так как вы хотите, чтобы он только направлял нас, нам нужно улучшить этот код в соответствии с нашим требованием

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;
    }

, дайте мне знать, работает ли он для вас и есть ли какие-либо проблемы в этом.

...