如何使用edittext创建列表视图

时间:2016-02-19 05:47:54

标签: android

我有一个带有编辑文本的列表视图。我想编辑每个编辑文本的值,需要将其设置为特定的视图本身。现在,当选择下一个编辑文本时,值正在改变。

3 个答案:

答案 0 :(得分:0)

您应该通过调用

刷新Listview
notifyDataSetChanged();

每次编辑后,相应地将文本设置为Edittext。

答案 1 :(得分:0)

没有得到你的确... ..看到这个例子希望这会对你有所帮助.. 你需要使用持有人。

Example

答案 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进行任何更改,并且您不会有重复的字符串。