首页 > 解决方案 > 通过按 Enter 将焦点移动到下一个 Edittext,它是 Recyclerview 的项目

问题描述

我创建了一个RecyclerView包含项目的EditText项目。当我按 Enter 时,它将EditText在下面创建一个新项目,我试图弄清楚如何将焦点移动到新项目,而无需单击。

imeOptions没用。

编辑文本项:

public class EdittextItem {
       private String text; //text from Edittext will be save in to this String

   public String getText() {
    return text;
   }

   public void setText(String text) {
    this.text = text;
   }

}

ViewHolder 和 OnBindVH:

class ViewHolder extends RecyclerView.ViewHolder {
        EditText text;

        public ViewHolder(@NonNull View itemView) {
            super(itemView);
            text = itemView.findViewById(R.id.text);
        }
    }

 @Override
    public void onBindViewHolder(@NonNull Adapter.ViewHolder holder, int position) {

       holder.text.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {}

        @Override
        public void afterTextChanged(Editable s) {
            list.get(position).setText(holder.text.getText().toString());

        }
    });
        holder.text.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if (keyCode == KeyEvent.KEYCODE_ENTER) {
                    list.add(new EditextItem());
                  //Create new Item and i want to move focus into it.

                }
                return false;
            }
        });
    }

标签: javaandroidandroid-recyclerviewandroid-edittext

解决方案


requestFocus()在您的视图上移动焦点使用方法。

参考。https://developer.android.com/reference/android/view/View#requestFocus()


推荐阅读