0

我正在使用此代码在列表视图中获取 edittext 的值。

     View view = listview.getChildAt(position);
     EditText text = (EditText)view.findViewById(R.id.myEditBox);
     String contents = text.getText().toString();

但问题是,当我滚动列表视图时,位置发生了变化,我得到了不同的结果。即,如果我滚动,第五个位置的元素位于顶部,它的位置变为 0。有什么补救措施吗?

4

1 回答 1

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
}

这样您就不必猜测编辑文本的位置

于 2012-08-06T22:16:28.000 回答