我有一个带有编辑文本的列表视图。我想编辑每个编辑文本的值,需要将其设置为特定的视图本身。现在,当选择下一个编辑文本时,值正在改变。
答案 0 :(得分:0)
您应该通过调用
刷新ListviewnotifyDataSetChanged();
每次编辑后,相应地将文本设置为Edittext。
答案 1 :(得分:0)
没有得到你的确... ..看到这个例子希望这会对你有所帮助.. 你需要使用持有人。
答案 2 :(得分:0)
很简单 让我们假设您有ArrayOfStrings来表示适配器内的数据。 String [] items = new String [15];
你有EditText etPrimaryValue;
您需要创建:
public class ListEditText扩展了EditText {
public int getPos() {
return pos;
}
public void setPos(int pos) {
this.pos = pos;
}
int pos = -1;
public ListEditText(Context context, AttributeSet attrs) {
super(context, attrs);
}
public void addCutomTextChangedListener(TextWatcher watcher,int pos) {
setPos(pos);
super.addTextChangedListener(watcher);
}
@Override
public void addTextChangedListener(TextWatcher watcher) {
super.addTextChangedListener(watcher);
}
}
然后返回适配器并将此代码插入editText。 etPrimaryValue.addCutomTextChangedListener(new TextWatcher(){
@Override
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if(position == holder.etPrimaryValue.getPos()) {
requiredFieldsModel.get(position).setValue(s.toString());
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void afterTextChanged(Editable s) {
}
},position);
此代码可完美更新您的模型,以便对列表中的editTexts进行任何更改,并且您不会有重复的字符串。