我的RecyclerView
是一個帶有複選框的列表,在頁面的底部是一個提交按鈕。當我點擊按鈕時,應該禁用複選框,但已經檢查過的那些框的狀態應該保留。還有,如何訪問複選框,因爲它位於RecyclerView.ViewHolder
?請幫助。在RecyclerView中禁用項目android
1
A
回答
-2
你可以試試:
RecyclerView rv=new RecyclerView(context);
rv.getChildAt(5).setEnabled(false); // disables the 6th element
1
這是更好的有這個作爲你正在製作的項目的屬性。
所以,如果模型項目將有一個「啓用」狀態,你可以改變。
public class Model {
private boolean isEnabled;
private boolean isChecked;
public void setEnabled(boolean enabled) {
isEnabled = enabled;
}
public void setChecked(boolean checked) {
isChecked = checked;
}
public boolean isEnabled() {
return isEnabled;
}
public boolean isChecked() {
return isChecked;
}
}
然後,您的ViewHolder將在您每次綁定它時檢查該屬性。此外,ViewHolder本身將監聽它處理的View上的複選框的更改。現在
public class ModelViewHolder extends RecyclerView.ViewHolder implements CompoundButton.OnCheckChangeListener {
private CheckBox checkBox;
private Model boundItem;
public ModelViewHolder(View itemView) {
checkBox = (CheckBox) itemView.findItemById(R.id.checkBoxId);
checkBox.setOnCheckChangeListener(this);
}
public void bind(Model model) {
boundItem = model;
getItemView().setEnabled(model.isEnabled());
checkBox.setChecked(model.isChecked());
}
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
boundItem.setChecked(isChecked);
}
}
,這是什麼使是項的狀態將是一致的,而用戶滾動(因爲RecyclerItem視圖被再次使用)。它還允許您在啓用/禁用模型項目時更容易地在項目上使用notifyItemChanged(int position)
。
0
您需要在傳遞給適配器的列表中獲取您的項目。如果它是一個自定義適配器可以使一個方法來回報您的列表,並代碼將是:
mAdapter.getList().get(4).setEnabled(false); //or equivalent
mAdapter.notifyDataSetChanged(); //or mRecycler.getAdapter().notifyDataSetChanged()
相關問題
- 1. 禁用RecyclerView項目拖動的振動
- 2. 單擊項目時禁用RecyclerView
- 3. 如何在Android中排序RecyclerView項目
- 4. 在RecyclerView中禁用中央項目重疊
- 5. android recyclerview項目點擊
- 6. Android RecyclerView不更新項目
- 7. Android RecyclerView項目序列號
- 8. Android - RecyclerView更改項目
- 9. 如何在gridview中禁用項目android
- 10. 在RecyclerView中可見項目
- 11. 刪除RecyclerView中的一個項目 - Android
- 12. 在RecyclerView項目的Android設置URL值
- 13. Android:在RecyclerView上設置固定項目
- 14. Recyclerview子項目
- 15. 在JList中禁用項目
- 16. 在CMFCToolBar中禁用項目
- 17. ConstraintLayout中居中RecyclerView項目
- 18. 禁用項目點擊並啓用onclick recyclerview
- 19. 使用RecyclerView保存項目
- 20. Android - Animate RecyclerView片段內的項目ViewPager
- 21. Android RecyclerView項目得到重點
- 22. 如何從Android的Recyclerview訪問項目?
- 23. android recyclerview gridview項目顯示不正確
- 24. Android RecyclerView奇怪的項目大小
- 25. Android recyclerview新增項目被appbarlayout阻止
- 26. 預加載Android RecyclerView項目與StaggeredGridLayoutManager
- 27. Android | RecyclerView上的AlertDialog項目點擊
- 28. Android RecyclerView滾動時重複項目
- 29. Android屏幕上適合recyclerview項目
- 30. Android很多項目選擇RecyclerView
有沒有什麼辦法,我訪問片段類ViewHolder的複選框? – fmpsagara
技術上是,但你爲什麼要?該複選框不像數值那麼重要。 – DeeV
重要的是要知道視圖(複選框)是暫時的。只有屏幕上可以看到的數量(加上一兩個)。如果您有一百個項目,那麼可能只有10個複選框。如果你想知道物品99的價值,你將無法得到它。 – DeeV