我正在使用此代码在列表视图中获取edittext的值。
View view = listview.getChildAt(position);
EditText text = (EditText)view.findViewById(R.id.myEditBox);
String contents = text.getText().toString();
但问题是,当我滚动列表视图时,位置发生变化,我得到了不同的结果。如果我滚动,第五个位置的元素位于顶部,其位置变为0.是否有任何补救措施那?
答案 0 :(得分:0)
如果您还没有为列表视图创建适配器,则必须在设置视图时在适配器上添加textwatcher并在文本更改为活动或片段时进行报告。
在适配器上:
edittext.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
((MyActivity) getContext()).textChanged(s.toString());
}
});
关于您的活动
public void textChanged(String s){
//do somthing with the string
}
这样您就不必猜测编辑文本的位置