2011-08-22 4 views
2

정수 배열을 baseadapter로 전달하려고합니다. 예를 들어, A.class는 B.class의 BaseAdapter에 정수 배열을 전달합니다. 여기에 내가 A.Class에 (보낸 사람) 정수 배열을 전달하고 어떻게 : 분명히 코드 위에 지금Integer to BaseAdapter

public class ImageSwitch1 extends Activity Extends ...{ 
onCreate.... 
[redacted] 
} 

private ImageSwitcher mSwitcher; 


public class ImageAdapter extends BaseAdapter { 

    Bundle b=this.getIntent().getExtras(); 
    int[] mThumb = b.getIntArray("mThumbSent"); 

    public ImageAdapter(Context c) { 

     mContext = c; 
    } 

    public int getCount() { 

    return mThumb.length; //this used to say return mThumbIds 

    } 

    public Object getItem(int position) { 
     return position; 
    } 

    public long getItemId(int position) { 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 

     ImageView im = new ImageView(mContext); 
     im.setImageResource(mThumb[position]); 
     im.setAdjustViewBounds(true); 
     im.setLayoutParams(new Gallery.LayoutParams(
     LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
     im.setBackgroundResource(R.drawable.picture_frame); 


     return im; 
    } 

    private Context mContext; 

} 
} 

, 내가 잘못 사용할 수 있습니다 :

int [] mThumb = { 
        R.drawable.image1_thumb, R.drawable.image2_thumb, R.drawable.image3_thumb, 
        R.drawable.image4_thumb, R.drawable.image5_thumb, R.drawable.image6_thumb, 
        R.drawable.image7_thumb, R.drawable.image8_thumb, R.drawable.image9_thumb, 
        R.drawable.image10_thumb}; 


     Bundle b=new Bundle(); 
     b.putIntArray("mThumbSent", mThumb); 
     Intent startSwitcher = new Intent(A.this, B.class); 
     startSwitcher.putExtras(b); 

그리고 활동 B 내 BaseAdapter에서

imageadapter에 getintent. 그러나 이것은 내가 성취하고자하는 것을 보여주는 예시이며 가능한 경우 BaseAdapter에 인 텐트를 통해 변수 또는 배열을 전달하는 방법을 알고 싶습니다.

ImageAdapter adapter = new ImageAdapter(context, intArray); 

답변

1

업데이트하여 ImageAdapter의 생성자과 같이 정수 배열을 적용합니다()은 클래스 B에서 사용할 수 있습니다.

번들 또는 정수 배열을 ImageAdapter

의 생성자에 넣을 수 있습니다 당신이 당신의 어댑터를 사용 하시겠습니까

ImageAdapter adapter = new ImageAdapter(yourcontext,getIntent().getExtras()); 

: 당신의 활동 B 어댑터 이런 식 구성에서

public class ImageAdapter extends BaseAdapter { 

    public ImageAdapter(Context c, Bundle b) { 
     int[] mThumb = b.getIntArray("mThumbSent"); 
     mContext = c; 
    } 

    ..... 
} 

? ListView에서? 그런 다음 BaseAdapter 대신 ListAdapter를 서브 클래스 화하면 충분합니다.

+0

감사합니다. 방금 날 구해 줬어. – benbeel

2

getIntent : 당신의 활동에 어댑터를 초기화 할 때, 단지 그것을 여분의 int 배열을 전달 그런

int[] mResources; 

public ImageAdapter(Context c, int[] resources) { 
    mResources = resources; 
    mContext = c; 
} 

:

관련 문제