Kri*_*nov 0 java android kotlin recycler-adapter android-recyclerview
您好我正在尝试使用以下代码在特定位置获取recyclerview Viewholder:
val viewHolder = educationRv.findViewHolderForAdapterPosition(i) as SectionsRecyclerAdapter.ViewHolder
Run Code Online (Sandbox Code Playgroud)
问题是,回收站视图回收了不可见的物品,如果不可见,我将无法获得物品和位置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)
}
Run Code Online (Sandbox Code Playgroud)
通用->我有带有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();
}
});
Run Code Online (Sandbox Code Playgroud)
这里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
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
121 次 |
最近记录: |