在ListView中保留EditText值

时间:2012-01-20 12:20:54

标签: android listview android-edittext

美好的一天!

我在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;  

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;

1 个答案:

答案 0 :(得分:0)

我猜测,你喜欢你的Sapatos在列表视图中显示,并且在使用时会更改某些属性执行文本编辑。你错过了(至少)以下:

  • 使用您的Sapato数据填充列表条目。列表条目被重用,如果转换视图为空,则扩展布局是正确的。但是你必须在字段中设置Sapato的数据(如果你在任何情况下必须这样做,那么将所有的findVuewById移到外面,然后填充它们)
  • 当重复使用列表视图时,只要编辑文本失去焦点,就可以将编辑后的数据保存到Sapato中。