您好我正在尝试使用以下代码在特定位置获取recyclerview Viewholder:
val viewHolder = educationRv.findViewHolderForAdapterPosition(i) as SectionsRecyclerAdapter.ViewHolder
问题是,回收站视图回收了不可见的物品,如果它不可见,我将无法获得物品和位置0。我在问我尝试过这个解决方案之前进行了搜索,但是无法阻止视图的回收(我知道这不是一个好的解决方案,但是我被卡住了,无法更好地解决问题):
educationRv.recycledViewPool.setMaxRecycledViews(1,0)
override fun getItemViewType(position: Int): Int {
return 1
}
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
if (holder != null) {
holder.setIsRecyclable(false)
}
通用->我有带有20个可动态添加的edittexts的recyclerview,可以动态添加,当用户单击“保存”时,我需要获取所有edittexts值并将其保存到数组,单击按钮“ Save”时出现问题,当我尝试时只有两个或三个视图可见变得不可见返回null
最佳答案
当我收到您的查询时,此解决方案肯定会为您提供帮助
在您看来Holder会这样
etText.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) {
yourEditTextList.set(getAdapterPosition(), s.toString());
}
@Override
public void afterTextChanged(Editable s) {
}
});
btnAddNewEditText.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
yourEditTextList.add(new String(""));
notifyDataSetChanged();
}
});
在这里,yourEditTextList是recylerView中editText的String列表。
在您有recylerView的活动中
btnDone.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Fetch you list that your have passed on recycler view you will get here
}
});