ExpandableListView + EditText串行问题解决方式

本文介绍了一个使用ExpandableListView与自定义适配器的Android应用示例。通过创建一个包含父条目和子条目的列表,展示了如何设置和获取数据、更新视图以及响应用户编辑操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

源码在GitHub:https://github.com/learnYU/LvAndED


activity 中:

    @Bind(R.id.expandableListView) ExpandableListView listView;
    private List<Bean> glist ;
    private Context context;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        context = this;
        glist = new ArrayList<>();

        for (int i = 0; i<20 ;i++){
            List<ChildBean> clist = new ArrayList<>();
            clist.add(new ChildBean("","a"));

            glist.add(new Bean("a"+i,clist));
        }
        Log.d("aaa",glist.toString());
        listView.setAdapter(new Adapter());

    }


    class Adapter extends BaseExpandableListAdapter{


        @Override
        public int getGroupCount() {
            return glist.size();
        }

        @Override
        public int getChildrenCount(int i) {
            return glist.get(i).getList().size();
        }

        @Override
        public Object getGroup(int i) {
            return glist.get(i);
        }

        @Override
        public Object getChild(int i, int i1) {
            return glist.get(i).getList().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 b, View view, ViewGroup viewGroup) {
            if (view == null) {
                view = LayoutInflater.from(context).inflate(R.layout.group_item, null);
            }

            TextView groupTv = (TextView) view.findViewById(R.id.group_title);
            Bean bean = glist.get(i);

            groupTv.setText(bean.getGroup());
            return view;
        }

        @Override
        public View getChildView(int i, int i1, boolean b, View view, ViewGroup viewGroup) {
            if (view == null) {
                view = LayoutInflater.from(context).inflate(R.layout.child_item, viewGroup, false);
            }

            TextView childTv = (TextView) view.findViewById(R.id.child_title);
            EditText editText = (EditText) view.findViewById(R.id.editText);
            List<ChildBean> clist = glist.get(i).getList();
            Bean bean  = glist.get(i);

            final ChildBean childbean = bean.getList().get(i1);
            childTv.setText(childbean.getTitle());

            editText.setText(childbean.getContent());

            editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
                @Override
                public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
                    Log.d("onEditorAction",textView.getText().toString());

                    childbean.setContent(textView.getText().toString());
                    return true;
                }
            });

            return view;
        }

        @Override
        public boolean isChildSelectable(int i, int i1) {
            return false;
        }

    }

group bean:



child Bean:

public class ChildBean {
    private String content; // 存放 EditText 输入的内容
    private String title ;

    public ChildBean(String content, String title) {
        this.content = content;
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值