Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android在列表视图中启用下一项_Android_Listview_Android Listview - Fatal编程技术网

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;但现在没什么好做的