Android 在 ListView 中启用下一个项目
Posted
技术标签:
【中文标题】Android 在 ListView 中启用下一个项目【英文标题】:Android enable next Item in a ListView 【发布时间】:2020-05-10 10:53:48 【问题描述】:我在 ListView 中有 N records
,default
我希望看到 1st list item
启用 和其他 items
禁用,为了达到同样的效果,我在 Adapter 类的 isEnabled
方法中编写了一个小逻辑,它是 works
@Override
public boolean isEnabled(int position)
if(position == 0)
return true;
else
return false;
一旦用户点击 list item 1(然后我想在列表中启用 item number 2)并且当用户点击 list item 2 (我们刚刚启用,我想启用item number 3)
为了实现这一点,我正在使用以下代码行:
int enableIndex = position + 1;
Toast.makeText(getApplicationContext(), String.valueOf(enableIndex), Toast.LENGTH_SHORT).show();
listview.getChildAt(enableIndex).setEnabled(true);
当我点击当前项目时,我可以看到下一个项目的索引,但 无法 使下一个项目启用
【问题讨论】:
请也支持我的问题,因为我已经展示了研究工作,我希望我的问题也有用且清晰......至少我可以加入专家组聊天,一旦我得到一些积分跨度> 您可以尝试在点击启用项目后调用 notifyDataSetChanged 吗? 【参考方案1】:你可以在你的模型类中有一个布尔字段enabled
,然后更新它。然后为该特定职位致电notifyItemChanged
。类似的东西..
【讨论】:
我使用 ListView 而不是 RecyclerView,因为我在建议的任何地方都看不到 notifyItemChanged 我的意思是调用类似于 listview 的 notifyItemChanged 的适当方法.. 你的意思是adapter.notifyDataSetChanged();
?
是的,ListView 的那个【参考方案2】:
您只需在您的 bindViewHolder fun 上添加 holder.itemView.isEnable=enablePos==position 行。当您单击项目视图时添加以下行。 enablePos=适配器位置+1 notifyItemChanged(enablePos)
【讨论】:
按照您的建议,我在模型类中添加了另一个字段 private boolean isEnabled;但现在不知道该做什么以上是关于Android 在 ListView 中启用下一个项目的主要内容,如果未能解决你的问题,请参考以下文章
Android - 禁用 ListView 选择突出显示但保持启用 OnClick [重复]