2012-04-18 2 views
0

현재 ProjectPreview 및 ImageAdapter라는 2 개의 클래스가 있습니다.다른 클래스의 이미지 뷰어 검색

Projectpreview에는 작업 표시 줄과 함께보기가 있습니다.

이미지 뷰 내에서 현재 이미지의 ID를 작업 표시 줄의 삭제로 가져 오는 방법을 알아낼 수 없습니다. projectpreview에서

에서 OnCreate : projectpreview에서

Gallery gallery = (Gallery) findViewById(R.id.gallery); 
    gallery.setAdapter(new ImageAdapter(this)); 

    gallery.setOnItemClickListener(new OnItemClickListener() { 
     public void onItemClick(AdapterView parent, View v, int position, long id) { 
      ImageAdapter ia1 = new ImageAdapter(); 
      ia1.showLarger(position); } 

삭제 코드 :

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.menu_delete: 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 
} 

ImageAdapter 클래스 :

 public Integer[] mImageIds = { 
      R.drawable.sample_1, 
      R.drawable.sample_2, 
      R.drawable.sample_3, 
      R.drawable.sample_4, 
      R.drawable.sample_5, 
      R.drawable.sample_6, 
      R.drawable.sample_7 
    }; 

    public void showLarger(int position){ 
     ImageView image = (ImageView) findViewById(R.id.iv1); 
     image.setScaleType(ImageView.ScaleType.CENTER_INSIDE); 
     image.setImageResource(mImageIds[position]); 
    } 

내가 image.setImageResource을 얻을 수있는 방법을 강구해야 (mImageIds [position]); 다른 클래스에서 mImageIds [위치]라는 그림을 제거 할 수 있습니다.

답변

0

이렇게하려면 ImageView에서 setTag 기능을 사용할 수 있습니다. 태그는 이미지 리소스에 사용 된 ID와 같이 원하는 모든 유형의 객체 일 수 있습니다. 그것을 제거하고 싶다면 setTag로 설정 한 객체를 반환 할 imageView.getTag()를 사용할 수 있습니다. 메뉴 항목을 클릭하면 삭제 코드가 실행되는 것을 볼 수 있습니다. ImageView에 대한 참조가 표시되지 않으므로 findViewById를 실행하여 뷰에 대한 참조를 가져와야합니다.

ImageView image = (ImageView) findViewById(R.id.iv1); 
    int id = (Integer)image.getTag(); 
+0

가 대단히 감사합니다 :

public void showLarger(int position){ ImageView image = (ImageView) findViewById(R.id.iv1); image.setScaleType(ImageView.ScaleType.CENTER_INSIDE); image.setImageResource(mImageIds[position]); image.setTag(mImageIds[position]); } 

이 ID를 가져옵니다 :

는 ID를 설정! 매우 감사. 그것은 완벽하게 작동합니다. – Denis