[英]What method is called when a view is scrolled out of view in ListView?
因此,我有一个ListView
,使用带有TextView
和EditText
的布局为其制作了自定义适配器。
对于EditText
我使用List<String>
将所有EditText的内容存储在列表中。 我使用OnFocusChangeListener(
)完成此操作。
我遇到的问题是,当EditText
处于焦点状态并且我滚动了足够多的内容以便其视图被回收时,我松开了它的内容,但是如果我单击鼠标左键使其不集中,那么在将其滚动到可见区域之外之前它会正常工作。
我本来是想在回收或销毁它时保存它的内容,所以这就是为什么我问将其滚动到可见区域之外时调用什么方法。 或者,当列表开始滚动时,我可以执行此操作(如果有可以使用的方法)。
这是我的自定义适配器中的getView
方法:
public View getView(final int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if(convertView == null)
{
holder = new ViewHolder();
convertView = inflater.inflate(R.layout.list_item_edit_content, null);
holder.input = (EditText) convertView.findViewById(R.id.input);
holder.title = (TextView) convertView.findViewById(R.id.rowName);
convertView.setTag(holder);
}
else
{
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(columnNames.get(position));
holder.input.setText(values.get(position));
holder.input.setOnFocusChangeListener(new OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(!hasFocus)
{
values.set(position, holder.input.getText().toString());
}
}
});
return convertView;
}
private class ViewHolder
{
EditText input;
TextView title;
}
您可以使用其他监听器:
holder.input.addTextChangedListener(new TextWatcher(){
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start, int count, int after){}
public void onTextChanged(CharSequence s, int start, int before, int count){}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.