마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

그리드뷰에 있는 이미지를 누르면 풀 스크린으로 보고싶어요ㅠㅠ인텐트 인자문제..

0 추천

그리드뷰를 구현해서 

intent i = new Intent(gridviewgallery.this, photodetail.class);

i.putExtra("param1", position);

startActivity(i); 로 인텐트를 넘겼습니다.

그리고 받는 부분에서 

Intetn intent = getIntent();

int position = intent.getExtras().getInt("param1");

Imageview view = (Imageview)findviewbyid(R.id.imageView1);

view.setImageResource(???????????);

이부분을 모르겠어요ㅠㅠ 안에 인자를 뭘로 넣어야할지 ㅠㅠ

 

public class MyAdapter extends BaseAdapter{
	static List<Item> mItems = new ArrayList<Item>();
	
	private LayoutInflater mInflater;
	
	public MyAdapter(Context context){
		mInflater = LayoutInflater.from(context);
		
		mItems.add(new Item("2015졸업1",       R.drawable.ccse));
        mItems.add(new Item("2015졸업2",   R.drawable.cse));
        mItems.add(new Item("제목을길게하면어떻게될까궁금해서해봄", R.drawable.ic_launcher));

	}

	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return mItems.size();
	}

	@Override
	public Item getItem(int position) {
		// TODO Auto-generated method stub
		return mItems.get(position);
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return mItems.get(position).drawableId;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		View v = convertView;
        ImageView picture;
        TextView name;

        if (v == null) {
            v = mInflater.inflate(R.layout.grid_item, parent, false);
            v.setTag(R.id.picture, v.findViewById(R.id.picture));
            v.setTag(R.id.text, v.findViewById(R.id.text));
        }

        picture = (ImageView) v.getTag(R.id.picture);
        name = (TextView) v.getTag(R.id.text);

        Item item = getItem(position);

        picture.setImageResource(item.drawableId);
        name.setText(item.name);

		return v;
	}
	
	 private static class Item {
	        public final String name;
	        public final int drawableId;

	        Item(String name, int drawableId) {
	            this.name = name;
	            this.drawableId = drawableId;
	        }
	    }

	
}

위는 어댑터 코드인데 배열이 List<>배열이라서 어떻게 받아와야 할지 모르겠네요

가로안에 List<gridviewgallery.MyAdapter.Item> mItems[position] 이런식으로 넣어봤는데도 안돼네요ㅠㅠ..

뭐가들어가는걸까요ㅠㅠ?

뱅bang (260 포인트) 님이 2015년 5월 8일 질문

1개의 답변

0 추천
Item item = (Item)adapter.getItem(position);
Intent i = new Intent(gridviewgallery.this, photodetail.class);
i.putExtra("param1", item.drawableId);
startActivity(i);

 

int drawableId = getIntent().getExtras().getInt("param1");
Imageview view = (Imageview)findviewbyid(R.id.imageView1);
view.setImageResource(drawableId);

 

쎄미 (162,410 포인트) 님이 2015년 5월 8일 답변
Item item=(Item)adapter.getItem(positon)이부분에서 오류가 나는데 어떻게 해야할까요ㅠㅠ?
adapter를 따로 선언해야하나요? 제 코드로 봤을때 MyAdapter를 넣어도 오류가 나서요ㅠㅠ
adapter를 MyAdapter로 바꾸면
'MyAdapter.Item에서 ClipData.Item으로 캐스트할 수 없습니다'
라고 나오는데 ㅠㅠ
...