我正在使用RecyclerView来容纳一堆CardView,其中包含EditText。用户应编辑文本并通过单击软键盘上的“继续/完成”按钮继续到下一个CardView。当下一个EditText聚焦时,软键盘应保持打开状态。卡视图与电话屏幕一样宽,需要水平/从右向左滚动。
我的代码已经可以识别单击“继续”按钮,但是我仍然无法转移焦点。
请让我知道这是否可行以及是否可行。谢谢

最佳答案

一种方法是在类中添加一个扩展RecyclerView.ViewHolder的方法。

public static class MyViewHolder extends RecyclerView.ViewHolder {
    // each data item is just a string in this case
    public CardView mCardView;
    public EditText mEditText;
    public MyViewHolder(CardView v) {
        super(v);
        mCardView = v;
        mEditText = v.findViewById(R.id.mEditText);
    }

    public void takeFocus() {
        if (mEditText != null && mEditText.isShown()) {
            mEditText.requestFocus();
        }
    }
}


根据是否使用其他ViewHolder类,您可能需要在调用takeFocus()方法之前添加一些逻辑,例如mViewHolder instanceOf MyViewHolder。

10-05 22:55