java - 通过按 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;
}
});
}
解决方案
requestFocus()
在您的视图上移动焦点使用方法。
参考。https://developer.android.com/reference/android/view/View#requestFocus()
推荐阅读
- linux - 日期:无效选项——“c”
- autoencoder - 是否可以将不同大小的数据组合成可用于自动编码器的输入?
- go - HTTP 请求:带有 graphQL 的 golang?
- whatsapp - 聊天记录经常被删除,几乎每周两次
- javascript - RangeError:超过了 docker 容器内用于 graphql 工具的最大调用堆栈大小
- java - 如何访问 WEB-INF/lib/jars?
- python - 更改 JointGrid 边际图的大小或将其删除
- android - 如何在 Android Canvas 中绘制带有文本的矩形按钮?
- mysql - Mysql触发器没有更新记录
- javascript - 如何拥有一些功能,然后附加另一个功能?IE。collections().get().something_else().so_on()