Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/193.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 单击时禁用GridView项目_Android_Gridview - Fatal编程技术网

Android 单击时禁用GridView项目

Android 单击时禁用GridView项目,android,gridview,Android,Gridview,我有一个GridView,它是从SQLite数据库条目动态生成的。当用户点击其中一个GridView项目时,活动开始。在点击和活动启动期间,有一瞬间,用户可以快速点击其他Gridview项目,启动其onItemClick方法。有没有办法在选择一种方法后禁用所有GridView项onItemClick方法 代码如下: gridView = (GridView) findViewById(R.id.gridView); nautsList = db.getAllNauts(); nautsGridA

我有一个
GridView
,它是从SQLite数据库条目动态生成的。当用户点击其中一个
GridView
项目时,活动开始。在点击和活动启动期间,有一瞬间,用户可以快速点击其他
Gridview
项目,启动其
onItemClick
方法。有没有办法在选择一种方法后禁用所有
GridView
onItemClick
方法

代码如下:

gridView = (GridView) findViewById(R.id.gridView);
nautsList = db.getAllNauts();
nautsGridAdapter = new AwesomenautGridViewAdapter(this, R.layout.gridview_item, nautsList);
gridView.setAdapter(nautsGridAdapter);

gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
     public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {
         //do stuff
         Intent intent = new Intent(AwesomenautSelectionActivity.this, AwesomenautSoundActivity.class);
         startActivity(intent);
      }
});
gridView=(gridView)findViewById(R.id.gridView);
nautsList=db.getAllNauts();
nautsGridAdapter=新的AwesomenautGridViewAdapter(此,R.layout.gridview_项,nautsList);
setAdapter(nautsGridAdapter);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
//做事
意向意向=新意向(AwesomenautSelectionActivity.this、AwesomenautSoundActivity.class);
星触觉(意向);
}
});

我会使用这个简单的解决方案。它已成功应用于我们的应用程序中。 创建一个全局布尔值
itemsLocked
,并在单击时将其设置为true。在startActivity之前将其设置回false。最后,在方法
onItemClick
add中

if (itemsLocked) return;
编辑:方法
onItemClick

public void onItemClick(AdapterView<?> parent, View v,
                                int position, long id) {
    if (itemsLocked) return;
    itemsLocked = true;

    //do stuff
    Intent intent = new Intent(...);
    itemsLocked = false;
    startActivity(intent);
}
public void onItemClick(AdapterView父视图、视图v、,
内部位置,长id){
如果(项目锁定)返回;
itemsLocked=true;
//做事
意向意向=新意向(…);
itemsLocked=false;
星触觉(意向);
}

这是一个非常好、简单、优雅的解决方案!工作完美。非常感谢