Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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
Java 如何在特定项目上启用/禁用ListView侦听器?_Java_Android_Listview - Fatal编程技术网

Java 如何在特定项目上启用/禁用ListView侦听器?

Java 如何在特定项目上启用/禁用ListView侦听器?,java,android,listview,Java,Android,Listview,我正在设计一款游戏,玩家必须按顺序完成关卡,才能进入下一关。有没有办法实现这一点 我已经在我的自定义ListAdapter中尝试过了 @Override public boolean isEnabled(int position) { if(position==0){ return true;} else{return false;} } 但是我无法找到一种方法来处理多个级别的问题。您可以按照setOnItemClicklistener()中的代码进行操作。 ListView

我正在设计一款游戏,玩家必须按顺序完成关卡,才能进入下一关。有没有办法实现这一点

我已经在我的自定义ListAdapter中尝试过了

@Override
public boolean isEnabled(int position) {
   if(position==0){ return true;}
   else{return  false;}

}

但是我无法找到一种方法来处理多个级别的问题。

您可以按照
setOnItemClicklistener()中的代码进行操作。

ListView ListView=(ListView)findViewById(R.id.ListView);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
if(listview.getChildAt(位置).isEnabled()){
listview.getChildAt(位置).setEnabled(错误);
}
}
}); 

Disch listview,使用recyclerview,在viewholder#bind中设置click listener,启用前检查条件
ListView listview = (ListView) findViewById(R.id.listview);

listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                if (listview.getChildAt(position).isEnabled()) {
                    listview.getChildAt(position).setEnabled(false);
                }
            }
        });