2013-08-21 1 views
0

임 여기에 내 코드새로운 활동에 gridview에 이미지를 얻기는 새로운 활동에 내 클릭 된/선택한 이미지를 보내려고

public int getCount() { 
    return mThumbIds.length; 
} 
public View getView(final int position, View convertView, ViewGroup parent) { 
     ImageView imageView; 
     if (convertView == null) { // if it's not recycled, initialize some attributes 
      imageView = new ImageView(mContext); 
      imageView.setLayoutParams(new GridView.LayoutParams(85, 85)); 
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP); 
      imageView.setPadding(8, 8, 8, 8); 
      imageView.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        Intent intent = new Intent(mContext,HeroData.class); 
        intent.putExtra("imageID", position); 
        mContext.startActivity(intent); 
       } 
      }); 
     } else { 
      imageView = (ImageView) convertView; 
     } 

     imageView.setImageResource(mThumbIds[position]); 
     return imageView; 

    } 

private Integer[] mThumbIds = { 
     R.drawable.pic1, R.drawable.pic12, 
     R.drawable.pic2, R.drawable.pic13, 
     R.drawable.pic3, R.drawable.pic14, 

}; 

}

하고 새로운 활동에 그것을받을하려고

Bundle bdl = getIntent().getExtras(); 
    int index = bdl.getInt("imageID"); 
    ImageView image = (ImageView) findViewById(R.id.imageview); 
    image.setImageResource();//the problem ! how to receive the selected image 

내가 보내는 것을 알고 싶다 ("imageID", position); 선택한 이미지를 가져 오는 방법

+0

당신은 당신의 imageList 배열을 public static으로 만들고 새로운 액티비티에 접근 할 필요가 있습니다. – Piyush

+0

@PiyushGupta 왜 정적으로 이미지를 변환하여 bytearray로 변환하고 인 텐트를 사용하여 전달할 수 있습니까? 또는 Adrián Rodríguez가 아래에 제안한 것처럼 그렇게하십시오. Adrián Rodríguez가 일해야합니다. – Raghunandan

답변

2

리소스를 보내려고하기 때문에 배열에있는 인덱스 대신 리소스 ID를 보낼 수 있습니다. 이런 식으로 뭔가 :

intent.putExtra("imageID", mThumbIds[position]); 
mContext.startActivity(intent); 

그리고 당신의 활동 : 도움이

Bundle bdl = getIntent().getExtras(); 
int imageRes = bdl.getInt("imageID"); 
ImageView image = (ImageView) findViewById(R.id.imageview); 
image.setImageResource(imageRes); 

희망.

+0

바로! : D가 전송 자원을 자원 ID로 변경했습니다! –

1

사용처럼이 ... 라이트에

gridView.setOnItemClickListener(new OnItemClickListener() 
    { 

     public void onItemClick(AdapterView<?> parent, View v,int position, long id) 

     { 

      Intent i = new Intent(getApplicationContext(), HeroData.class); 



      i.putExtra("imageID", position); 

      startActivity(i); 


     } 
    }); 

필요가있는 gridview를 클릭

당신은, 당신은 자원에 그것을 할 수 있습니다 예를 들어, 다른 장소에 당김의 resourses을 유지할 수 있습니다
+0

'intent.putExtra ("imageID", position)'동일하지 않습니다. 어떻게 다른가요? – Raghunandan

+0

onArea를 onCreate 메소드 내 MainActivity에 넣으십시오. – mur7ay

0

문자열 배열

<resources> 

<string-array name="thumbs_imgs"> 
    <item>@drawable/pic1</item> 
    <item>@drawable/pic2</item> 
    <item>@drawable/pic3</item> 
</string-array> 

</resources> 

하고 당신이 필요 당김 인덱스를 얻을

TypedArray imgs = getResources().obtainTypedArray(R.array.thumbs_imgs); 
//get resourceid by index 
mImgView1.setImageResource(imgs.getResourceId(i, -1)); 
관련 문제