在使用新的RecylerView
(其中包括ArrayList
)更新EditText
时遇到了一个问题。每当用新的RecylerView
更新ArrayList
时,程序总是选择EditText
中第一项的RecyclerView
。
每次焦点转移时,下面的Listeners
都会调用更新函数。因此,换句话说,您无法有效地选择EditText
中的任何其他RecylerView
项,因为当第一项失去焦点时,RecyclerView
会更新为新的ArrayList
并然后自动选择EditText
中第一项的RecyclerView
。
默认情况下,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的新手,如果这是我忽略的简单修复,请原谅。
答案 0 :(得分:0)
尝试将这些行放在Itemview的父布局中
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
答案 1 :(得分:0)
如果调用此mAdapter.notifyDataSetChanged();那么这意味着整个recyclerview都在刷新,因此,如果您想关注更改过的项目myAdapter.notifyItemInserted(position)
或myAdapter.notifyItemChanged()
,或者可以将recyclerview.scrollToPosition()
如果它不起作用,请尝试恢复我的状态。 `