我在ListView里面加了EditText,但是每次我随便选一行,一输入东西,它好像就触发了事件(但是我并没有写什么触发事件),ListView里面的EditText的值就会乱套了,就是说本来在这个EditText里面的内容会跳到例外一个EditText,而且刚刚我输入的那个EditText的值也可能会跳到别的EditText上,而且是无规律的,为什么呢
部分代码:
@Override
  public View getView(final int position, View convertView, ViewGroup parent) {
  TempView tempview;
  if(convertView == null){
  tempview = new TempView();
  convertView = inf.inflate(R.layout.for_kfpdetail, null);
  tempview.msg = (TextView) convertView.findViewById(R.id.tv_msg_kf);
  tempview.et_msg = (EditText) convertView.findViewById(R.id.et_msg1);
  convertView.setTag(tempview);
  } else {
  tempview = (TempView) convertView.getTag();
  }
  tempview.msg.setText(data.get(position).get("msg").toString());
    
  return convertView;
  }
    
  class TempView {
  TextView msg;
  EditText et_msg;
  }  
 

解决方案 »

  1.   

     google,百度都没有,这里也没有人告诉我,我只想知道为什么我一输入值就会触发 了事件,但是我什么都没配啊
      

  2.   

    tempview 永远都是同一个啊, if(convertView == null){//第一次进入这里
      tempview = new TempView();
      convertView = inf.inflate(R.layout.for_kfpdetail, null);
      tempview.msg = (TextView) convertView.findViewById(R.id.tv_msg_kf);//获取到布局里的TextView
      tempview.et_msg = (EditText) convertView.findViewById(R.id.et_msg1);//获取到布局里的EditText
      convertView.setTag(tempview);
      } else {
      tempview = (TempView) convertView.getTag();//以后再进入时会到这里,可是tempview 就是第一次创建的那个
      }
    也就是说tempview唯一,那里面的edittext和textview都是唯一的,每个list项中都是用这两个相同的edit对象,改了一个edit,只要list一刷新(拖拽移动之类的操作),就可能跳转到其他list项里的edit。
    你应该有一个TempView 的数组,list有多个个元素,也就代表有多少个TempView 。