【发布时间】:2023-03-15 08:55:01
【问题描述】:
美好的一天!
我在 EditText 中携带一个 ListView,用户滚动在 EditText 中输入的值会更改位置。
我应该如何处理?
谢谢!
方法getView():
public View getView(final int position, View convertView, ViewGroup parent){
final Sapatos sapato = lista.get(position);
if (convertView == null){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_pedidos, null);
holder.img = (ImageView) convertView.findViewById(R.id.imgPed);
holder.edt = (EditText)convertView.findViewById(R.id.editText1);
final LinearLayout layout;
layout = (LinearLayout)convertView.findViewById(R.id.LayoutPed);
convertView.setTag(holder);
} else{
holder = (ViewHolder) convertView.getTag();
}
holder.img.setImageResource(sapato.getImagem());
holder.edt.setText(""); //adicionei somente esta linha
return convertView;
}
【问题讨论】:
-
你的意思是你在每个列表项中都有编辑文本吗?
-
我不太明白这个问题...你能发布一些代码吗?
-
是的!当我在 EditText 中键入一个值并导航 ListView 时,这个值在我遍历列表时被分配给其他行。
-
我发布了getView()方法。
-
您的 EditText 似乎正在被回收(通过
convertView)并重新显示在新的列表项中。您可能需要在ListAdapter中保留一个字符串数组,以跟踪每个 EditText 的状态。这行:holder.edt.setText("");使得 EditTexts 在滚动到屏幕上时看起来应该总是空的。
标签: android listview android-edittext