2012-01-20 67 views
4

美好的一天!保留ListView中的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; 

}

+2

你的意思是说你在每个列表项中都编辑了文本? – Lukap

+0

我真的不明白这个问题......你可以发布一些代码吗? – iaindownie

+0

是的!当我在EditText中键入一个值并导航ListView时,当我遍历列表时,该值将被分配给其他行。 –

回答

0

我推测疯狂,你喜欢在列表视图中显示您的Sapatos,以及用于执行文本编辑时,一些属性来改变。您错过(至少)以下内容:

  • 使用您的Sapato数据填充列表条目。列表条目被重用,并且如果convert view为null,则对布局进行膨胀是正确的。但是你必须在字段中设置来自你的Sapato的数据(如果你需要在外部移动所有的findVuewById,并且填充它们)
  • 当列表视图被重用时,你已经保存了编辑只要编辑文本失去焦点,数据就会进入你的Sapato。