2012-03-09 3 views
0

GridViewでエラーが発生しました。文字列からグリッドビューを表示しています。グリッドビューの行を選択すると、警告ダイアログを表示したいと思います。しかし、私の問題は、グリッドビューをスクロールして警告ダイアログを表示しているときです。ここに私のコードです。GridViewのsetOnItemSelectedListenerにエラーがありますか?

grid = (GridView) findViewById(R.id.grid); 
    grid.setAdapter(/*Adapter class*/); 

    grid.setOnItemSelectedListener(new OnItemSelectedListener() { 

     @Override 
     public void onItemSelected(AdapterView<?> parent, View v, int pos, long id) { 
      final AlertDialog alertDialog = new AlertDialog.Builder(ApprovePunches.this).create(); 
      alertDialog.setTitle("Approve..."); 
      alertDialog.setMessage("Are you sure?"); 
      alertDialog.setButton("ok", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
       alertDialog.dismiss(); 
       } 
      }); 
      alertDialog.setButton2("Cancel", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
        alertDialog.dismiss(); 
        } 
       }); 

      alertDialog.setIcon(android.R.drawable.alert_dark_frame); 
      alertDialog.show(); 

     } 



     @Override 
     public void onNothingSelected(AdapterView<?> arg0) { 


     } 
    }); 

誰でもこの作業を手伝ってください。ありがとうございました。

+0

logcatしてください。.. – Deva

+0

@Deva:私は何も表現していない、エラーを強制的に閉じたり、エラーメッセージをlogcatに与えたりすることはありません。何もしていない項目をクリックするとスクロールしようとすると警告が表示されます.... – wolverine

+0

私はBinyamins – Deva

答えて

0

これは、onItemSelected Listenerに警告ダイアログを表示しようとしているためです。 Viewに変更があったとき(たとえば、Scrollイベント中)にonItemSelectedListenerが呼び出されます。あなたは、ユーザーのアクションに基づいてダイアログを表示したい場合は、あなたがこのようなsetOnItemClickListenerを使用することができます

grid.setOnItemClickListener(新OnItemClickListener(){

@Override 
    public void onItemClick(AdapterView<?> parent, View v, int pos, long id) { 
     final AlertDialog alertDialog = new AlertDialog.Builder(ApprovePunches.this).create(); 
     alertDialog.setTitle("Approve..."); 
     alertDialog.setMessage("Are you sure?"); 
     alertDialog.setButton("ok", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
      alertDialog.dismiss(); 
      } 
     }); 
     alertDialog.setButton2("Cancel", new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
       alertDialog.dismiss(); 
       } 
      }); 

     alertDialog.setIcon(android.R.drawable.alert_dark_frame); 
     alertDialog.show(); 

    } 

}); 
+0

ありがとうございました。その作業は今すぐになります。 – wolverine

+0

私の友人を歓迎する... –

1

setOnItemClickListenersetOnItemSelectedListenerではなくGridViewに使用してください。

関連する問題