2012-11-22 3 views
0

목록 어댑터를 사용하여 이미지보기 배열을 보여줍니다. 프로그램에서 ID를 동적으로 설정했습니다. 문제는 어댑터를 오른쪽으로 스크롤 할 때 이미지가 화면에 나타날 때만 ID가 표시된다는 것입니다. 다시 왼쪽으로 스크롤하면 이전 이미지의 ID가 새 값으로 재설정됩니다. 활동 시작과 동시에 모든 이미지의 ID를 설정하려면 어떻게해야합니까?활동 내에서 한 번에 모든보기를로드하십시오.

작업은 그림과 같습니다. 오래 된 이미지는 새로운 ID를 얻습니다. 활동 ID는 이전 ID를 통해 액세스하는 데 문제를 만듭니다. 내 이미지 어댑터 코드 :

public View getView(final int position, View convertView,ViewGroup parent) 
    { 
     final ImageView i = new ImageView(thView.getView().getContext()); 
     Bitmap bm; 
     try { 
      bm = thView.getBitmapFromAsset(lis.get(position)); 
      bm = Bitmap.createScaledBitmap(bm, 100, 100, false); 
     } catch (IOException e) { 
      e.printStackTrace(); 
      bm=null; 
     } 
     i.setImageBitmap(bm); 
     final RelativeLayout borderImg = new RelativeLayout(thView.getView().getContext()); 

     i.setId(x); 
     Log.w("ID set as",""+x); 
     i.setTag(IMAGEVIEW_TAG); 
     x++; 
     borderImg.addView(i);   
     i.setOnLongClickListener(new OnLongClickListener() { 
      public boolean onLongClick(View v) { 
       fname = lis.get(position); 
       ClipData.Item item = new ClipData.Item((CharSequence) v 
         .getTag()); 
       dragData = new ClipData(
         (CharSequence) v.getTag(), 
         new String[] { ClipDescription.MIMETYPE_TEXT_PLAIN }, 
         item); 

       View.DragShadowBuilder myShadow = new MyDragShadowBuilder(i); 
       v.startDrag(dragData, myShadow, null, 0); 
       return false; 
      } 
     }); 
     myDragEventListener mDragListen = new myDragEventListener(); 
     i.setOnDragListener(mDragListen); 
     return borderImg; 
    } 
} 
+0

액티비티가 좌우 스크롤과 함께 작동하는 방법을 잘 모르겠습니다. 당신은 그것을 더 간단하게 만들거나 스크린 샷이나 코드를 포함시켜 주시겠습니까? –

+1

어댑터 코드를 게시하십시오. – dmon

+0

@Saifuddin 내 이미지 어댑터의 기본 작업입니다. – Andro

답변

1

x 무엇입니까? x이 위치에 따라 다르면 항상 사용하기 때문에 왜 대신 사용하지 않습니까?

실제로 AdapterView가 의미하는 바를 따르지 않고 원하는 것을 할 수는 없습니다. 또한 처음에 모든 이미지 뷰를 렌더링하면 메모리 부족 문제가 발생할 수 있습니다.

실제 질문은 ID로 무엇을하려고하는 것입니까?