Android在列表视图中启用下一项
我在列表视图中有Android在列表视图中启用下一项,android,listview,android-listview,Android,Listview,Android Listview,我在列表视图中有N条记录,默认情况下我希望看到第一个列表项被启用,其他项被禁用,为了实现同样的效果,我在适配器类的方法中编写了一个小逻辑 @Override public boolean isEnabled(int position) { if(position == 0) return true; else return false; } 一旦用户点击列表项1(只有在我想在列表中启用项目编号2),
N条记录
,默认情况下我希望看到第一个列表项
被启用,其他项
被禁用,为了实现同样的效果,我在适配器类的方法中编写了一个小逻辑
@Override
public boolean isEnabled(int position) {
if(position == 0)
return true;
else
return false;
}
一旦用户点击列表项1(只有在我想在列表中启用项目编号2),当用户点击列表项2(我们刚刚启用了它,我想启用项目编号3)
为了实现这一点,我使用了以下代码行:
int enableIndex = position + 1;
Toast.makeText(getApplicationContext(), String.valueOf(enableIndex), Toast.LENGTH_SHORT).show();
listview.getChildAt(enableIndex).setEnabled(true);
点击当前项目时,我可以看到下一个项目索引,但无法启用下一个项目您可以在模型类中启用一个布尔字段,
,并对其进行更新。然后为该特定位置调用notifyItemChanged
。类似这样的东西。您只需在bindViewHolder上添加holder.itemView.isEnable=enablePos==定位行。当您单击项目视图时,请在下面的行中添加。
enablePos=适配器位置+1
notifyItemChanged(enablePos)请也投票支持我的问题,因为我已经展示了研究成果,我希望我的问题也有用且清晰。。。至少我可以加入专家组聊天,一旦我得到一些建议,你可以试着在点击后调用notifyDataSetChanged来启用项目吗?我使用的是ListView而不是RecyclerView,由于我在Suggestion中的任何地方都看不到notifyItemChanged,所以我想调用与listview的notifyItemChanged类似的适当方法。您的意思是adapter.notifyDataSetChanged()代码>?是的,ListViewI的一个字段在模型类中添加了另一个字段,正如您建议的私有布尔值为Enabled;但现在没什么好做的