android - 带有动态 Edittext 的 RecyclerView

标签 android android-edittext android-recyclerview

我已经创建了我的 RcyclerView 及其适配器,如下所示。

RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
recyclerView.setLayoutManager(new LinearLayoutManager(this));
recyclerView.setHasFixedSize(true);

final ArrayList<String> list = new ArrayList<>();
final RecyclerViewAdapter adapter = new RecyclerViewAdapter(list);
recyclerView.setAdapter(adapter);
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        int count = list.size();
        list.add(count + " * 10 = " + (count * 10));
        adapter.notifyDataSetChanged();
    }
});

我的适配器的ViewHolder是

class ViewHolder extends RecyclerView.ViewHolder {
    EditText item;

    ViewHolder(View itemView) {
        super(itemView);
        item = (EditText) itemView.findViewById(R.id.item);
        item.requestFocus(); //I want my last row's EditText get focused automatically.
    }
}

所以我希望我的最后一个 EditText 自动获得焦点。但是,当我添加新的最后一个编辑文本时,它会获得焦点,而再次添加新的编辑文本时,第一个编辑文本会获得焦点,然后是最后一个,然后是第一个......等等......请参阅 gif。

enter image description here

此处不应转到第一个编辑文本。

我不知道如何解决这个问题。

最佳答案

通过使用以下方法,我已经达到了目标。感谢所有试图帮助我的人。

@Override
public void onViewAttachedToWindow(ViewHolder holder) {
    super.onViewAttachedToWindow(holder);
    if (holder.item != null && holder.item.getText().length() == 0) {
        holder.item.requestFocus();
    }
}

关于android - 带有动态 Edittext 的 RecyclerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40377835/

相关文章:

带有两个图像和文本的 Android 按钮

javascript - chrome mobile 和 safari mobile 中的不同陀螺仪值

android - 继续从回调中挂起函数

android - 在 edittext 中克服\n

android - Textwatcher 不在 KitKat 上将数字作为 inputType

android - Activity 的每个 fragment 中 float 操作按钮的不同实现

java - Recyclerview 调用 notifyItemChanged 导致空白项

Android 位置将纬度和经度从 DMS 格式更改为 double

android - 如何启用按钮取决于 API 7 中的编辑文本

android - 在 android 中对 RecyclerView 的项目启用按下效果