2016-05-20 9 views
1

GridViewは、SQLiteデータベースのエントリから動的に生成されます。ユーザがGridViewアイテムの1つをタップすると、アクティビティが開始されます。タップおよびアクティビティの開始からの時間中に、ユーザはonItemClickメソッドを開始する他のGridviewアイテムを迅速にタップすることができる分割された秒がある。方法がありますのでGridViewの項目はすべてonItemClickのメソッドを選択すると無効になりますか?ここでクリック時のGridViewアイテムを無効にする

はコードです:

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); 
     } 
}); 

答えて

1

私はこのシンプルなソリューションを使用します。それは我々のアプリでうまく使用されています。 グローバルブール値itemsLockedを作成し、クリックするとすぐにtrueに設定します。 startActivityの直前にfalseに戻します。最後に、この方法ではonItemClick

if (itemsLocked) return; 

EDITを追加します。方法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); 
} 
+0

このような素敵な、シンプルでエレガントな解決策!完璧に動作します。どうもありがとう – blueprintChris

関連する問題