通知数据集更改()后焦点丢失



我有一个列表视图,每行都包含一个编辑文本。当我在列表视图的最后一行添加文本时,我想向列表视图添加一个空行。所以我更改了我的列表并调用 notifyDataSetChanged()。不幸的是,焦点转到列表视图之外的地方。如何在当前edit_text保持专注?我已经尝试过edit_text.requestFocus() - 但它没有工作。

法典:

@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
    LayoutInflater inflater=(LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View rowView=inflater.inflate(R.layout.design_listview, parent, false);
    EditText edit_text=(EditText) rowView.findViewById(R.id.list_edittext);
    edit_text.setText(values.get(position).text);
    edit_text.addTextChangedListener(new TextWatcher()
    {
        public void beforeTextChanged(CharSequence charSequence, int i, int j, int k) { }
        public void onTextChanged(CharSequence charSequence, int i, int j, int k) { }
        public void afterTextChanged(Editable editable)
        {
            values.get(position).text=editable.toString();
            if(position == values.size()-1 && editable.toString().length() > 0) {
                listaddItem();
                notifyDataSetChanged();
                // How to keep the focus? edit_text.requestFocus(); did not help
            }
        }
        // ..
    return rowView;
    }
}

感谢!

也许edit_text.setSelection(0); 作品?

最新更新