Android 解决ListView里面多套布局多个EditText数据混乱问题

本文探讨了在Android中ListView内多套布局使用多个EditText时出现的数据错乱问题。通过引用GitHub上的解决方案并结合相关博客,提出了解决Adapter刷新导致的问题。主要涉及对ListView复用机制的理解和关键代码调整。
摘要由CSDN通过智能技术生成

效果图:
在这里插入图片描述
参考:https://github.com/Aspsine/EditTextInListView 非常感谢

如果只是ListView里面只包含一套布局的话,可以参考这里:http://blog.csdn.net/fan7983377/article/details/51516155

这个效果的主要问题地方就是多套item和每个item内部的EditText数据由于listview的复用导致数据混乱问题:

主要代码就是adapter里面的:

public class AddAdapter extends BaseAdapter {

    private Context context;
    private List<AddBean> mans;
    private LayoutInflater layinf;

    public AddAdapter(Context context, List<AddBean> mans) {
        this.context = context;
        this.mans = mans;
        layinf = LayoutInflater.from(context);
    }

    @Override
    public int getCount() {
        return mans.size();
    }


    @Override
    public int getItemViewType(int position) {
        //这里是根据position返回指定的布局类型,比如男的返回0,女的返回1,会根据这个返回值加载不同布局
        return mans.get(position).id;
    }

    @Override
    public int getViewTypeCount() {
        //这里是adapter里有几种布局
        return 2;
    }

    @Override
    public Object getItem(int position) {
        return null;
    }

    @Override
    public long getItemId(int position) {
        return 0;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        final AddBean bean = mans.get(position);
        //第一个布局的holder
        ViewManHolder vhMan = null;
        //第二个布局的holder
        ViewWoManHolder vhWoMan = null;

        if(convertView == null){
            switch (bean.id){
                case 0:
                    convertView = layinf.inflate(R.layout.item_man ,null);
                    vhMan = new ViewManHolder(convertView);
                    convertView.setTag(vhMan);
                    break;
                case 1:
                    convertV
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值