Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java RecylerView数据更新始终将重点放在第一项上_Java_Android_Android Recyclerview - Fatal编程技术网

Java RecylerView数据更新始终将重点放在第一项上

Java RecylerView数据更新始终将重点放在第一项上,java,android,android-recyclerview,Java,Android,Android Recyclerview,我在使用包含EditText的新ArrayList更新recyleview时遇到了一个问题。每当RecylerView更新为新的ArrayList时,程序总是选择RecyclerView中第一项的EditText 每当焦点发生变化时,监听器就会调用下面的更新函数。因此,换句话说,您无法在RecylerView中有效地选择任何其他EditText项目,因为当第一个项目失去焦点时,RecyclerView会更新为新的ArrayList,然后自动选择RecyclerView中第一个项目的EditTex

我在使用包含
EditText
的新
ArrayList
更新
recyleview
时遇到了一个问题。每当
RecylerView
更新为新的
ArrayList
时,程序总是选择
RecyclerView
中第一项的
EditText

每当焦点发生变化时,
监听器就会调用下面的更新函数。因此,换句话说,您无法在
RecylerView
中有效地选择任何其他
EditText
项目,因为当第一个项目失去焦点时,
RecyclerView
会更新为新的
ArrayList
,然后自动选择
RecyclerView
中第一个项目的
EditText

默认情况下,
notifyDataSetChanged()
会自动选择第一项吗?或者可能是因为某种方式我设置了适配器

private void refreshRecyclerList() {

    // Set titles for the Recycler View Items
    textInputList.clear();
    textInputList.add(new EditTextRecyclerItem("Monthly on New Stuff", stringSpendingMonthly));
    textInputList.add(new EditTextRecyclerItem("Yearly on New Stuff", stringSpendingAnnually));

    //mAdapter.updateArrayList(textInputList);
    mAdapter.notifyDataSetChanged();
}

我是Android新手,所以如果这是一个我忽略的简单修复,请原谅。

如果您调用此
mAdapter.notifyDataSetChanged()
则意味着整个recyclerview正在刷新,因此如果您想关注更改的项
myAdapter.notifyItemInserted(position)
myAdapter.notifyItemChanged()
或者您可以通过
RecyclerView.scrollToPosition()滚动您的RecyclerView


如果不起作用,请尝试回复我。

谢谢您的建议。我不知道该如何实施。当当前项失去焦点时,通知程序将激发。所以很容易知道焦点所在的位置,但不知道它要去哪里。