2011-09-30 40 views
5

私のアプリでは、いくつかの画像が入ったギャラリーがあります。ユーザーが画像を選択すると、何とか選択した画像のIDを取得したいと思います。View.getId()は、OnItemClickListenerの間違ったIDを返します。

getId()によって返されるint値は-1です。選択された画像のシステムIDを取得できないのはなぜですか?

gallery.setOnItemClickListener(new OnItemClickListener() { 
      @SuppressWarnings("rawtypes") 
      @Override 
      public void onItemClick(AdapterView parent, View v, int position, long id) { 
       int imageId = v.getId(); 
      } 
     }); 

ありがとうございます!

+0

uがOnItemSelectedListenerでチェックしましたか? – Venky

答えて

2

アダプタクラスで使用するこの

public void onItemClick(AdapterView<?> parent, View v, int position, long id) { 
     int imageId = ((ImageAdapter)parent.getAdapter()).mygetItemId(position); 

     } 
    }); 

をこの機能を追加

public long getItemId(int position) { 
     return imagearray[position]; 
    } 
+0

ありがとう、これは完全に働いた! =) – plast

6

使用OnItemSelectedListener代わりのOnItemClickListener

gallery.setOnItemSelectedListener(new OnItemSelectedListener(){ 

      @Override 
      public void onItemSelected(AdapterView<?> parent, View view,int pos, long id){ 
       // TODO Auto-generated method stub 
      } 

      @Override 
      public void onNothingSelected(AdapterView<?> arg0) { 
      // TODO Auto-generated method stub 

      } 
     }); 
関連する問題