Android RecyclerView 中的 EditText 重排问题
创始人
2024-08-15 06:00:38
0

在Android RecyclerView中,当包含EditText的列表项(Item)被重用时,会出现EditText内容错乱或乱序的问题。这是因为RecyclerView的重用机制会导致EditText的内容丢失或乱序。

为了解决这个问题,可以在RecyclerView的Adapter中使用以下方法:

  1. 创建一个HashMap来保存EditText的内容和位置信息。
private HashMap editTextValues = new HashMap<>();
  1. 在RecyclerView的Adapter中,在绑定ViewHolder时,为EditText设置文本,并保存其位置信息。
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
    // 获取当前位置上的EditText的内容
    String text = editTextValues.get(position);

    // 设置EditText的文本
    holder.editText.setText(text);
    
    // 设置EditText文本变化监听器
    holder.editText.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

        @Override
        public void afterTextChanged(Editable s) {
            // 保存EditText的文本和位置信息
            editTextValues.put(position, s.toString());
        }
    });
}
  1. 在RecyclerView的Adapter中,重写getItemId方法并返回具体的position,以确保RecyclerView正确保存文本的位置信息。
@Override
public long getItemId(int position) {
    return position;
}

这样,每次RecyclerView的列表项被重用时,会根据位置信息正确地设置EditText的文本,并在文本变化时保存其内容。这样就能解决Android RecyclerView中的EditText重排问题。

相关内容

热门资讯

教程辅助!wepoker辅助挂... 教程辅助!wepoker辅助挂多功能透视工具,都是是真的有挂(有挂秘籍)wepoker脚本下载中分为...
重大推荐!wpk辅助挂多功能透... 重大推荐!wpk辅助挂多功能透视工具,一直是有挂(真的有挂)1、进入游戏-大厅左侧-新手福利-激活码...
2分钟细说!wpk辅助挂多功能... 2分钟细说!wpk辅助挂多功能透视工具,真是真的有挂(有挂解惑)1、2分钟细说!wpk辅助挂多功能透...
玩家必看科普!德普之星辅助挂多... 玩家必看科普!德普之星辅助挂多功能透视工具,果然是有挂(有挂猫腻)1、进入到德普之星是否有挂之后,能...
实测必看!微扑克辅助挂多功能透... 实测必看!微扑克辅助挂多功能透视工具,一贯是真的有挂(有挂工具)1、这是跨平台的微扑克轻量版有透视,...
重大发现!AAPoKer辅助挂... 重大发现!AAPoKer辅助挂多功能透视工具,真是是真的有挂(有挂解惑)AAPoKer破解侠是真的助...
我来向大家传授!智星菠萝德州辅... 我来向大家传授!智星菠萝德州辅助挂多功能透视工具,切实存在有挂(有挂教学)1、智星菠萝德州免费辅助多...
一分钟揭秘!WPK辅助挂多功能... 一分钟揭秘!WPK辅助挂多功能透视工具,本来真的是有挂(真的有挂)1、下载好WPK正确养号方法之后点...
玩家实测!德扑之星辅助挂多功能... 玩家实测!德扑之星辅助挂多功能透视工具,总是是真的有挂(真的有挂)1、每一步都需要思考,不同水平的挑...
热点推荐!德扑之星辅助挂多功能... 您好,德扑之星这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在这款...