Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ListView中编辑文本?_Java_Android_Android Layout_Android Listview - Fatal编程技术网

Java 在ListView中编辑文本?

Java 在ListView中编辑文本?,java,android,android-layout,android-listview,Java,Android,Android Layout,Android Listview,我使用此代码在列表视图中获取edittext的值 View view = listview.getChildAt(position); EditText text = (EditText)view.findViewById(R.id.myEditBox); String contents = text.getText().toString(); 但问题是,当我滚动列表视图时,位置会发生变化,我会得到不同的结果。也就是说,如果我滚动,第五个位置的元素会位于顶部,其位

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

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

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

如果尚未为listview创建适配器,则必须为其创建适配器;设置视图时,必须在适配器上添加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
}

这样,您就不必猜测编辑文本的位置,但如何确定我获取的是哪一行的编辑文本值。如果实现适配器getView(int position、View convertView、ViewGroup parent)方法,您还可以获取当前正在处理的项的位置,因此,您可以轻松地将新参数传递给活动的textChanged方法