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

사진첩을 만들고있는데 알려주세요

0 추천

지금 과제로 사진첩을 만들고있습니다. 첫번째 사진의 작은 그림을 터치하면 다음 화면으로

넘어가 큰사진(뷰플리퍼)으로 나오는개념인데요

 

현재 원하는 작은 사진을 클릭했을시 다음화면에도 같은 사진이 나오게 하고싶은데 그게 잘 안되네요

 

public void onClick (View v){
			switch (v.getId()) {
				case R.id.n1 :
					Log.v("DEBUG", "R.id.n1 Clicked");
					Intent ii=new Intent(MainActivity.this,	LargeViewActivity.class);
					ii.putExtra("id","n1");
					startActivity(ii);
					break;
}
public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		ImageButton button1=(ImageButton)findViewById(R.id.n1);
}

(편의상 소스는 하나만 넣어놨습니다. n1~n4까지 4개가 있습니다.)

이미지버튼으로 만들어서 id값을 스트링으로 넘긴후에

Intent ii=getIntent();
		String strName=ii.getStringExtra("id");
		Log.v("tttttttttttttttttttttt",strName);
		
		
		setContentView(R.layout.large_view);
		checkBox = (CheckBox)findViewById(R.id.chkAuto);
		checkBox.setOnCheckedChangeListener(this);
		flipper = (ViewFlipper)findViewById(R.id.viewFlipper);
		
		flipper.setOnTouchListener(this);
		TextView tv = new TextView(this);
		tv.setText("View 4\nDynamically added");
		tv.setTextColor(Color.CYAN);
		
		if(strName=="n1"){
			flipper.setDisplayedChild(2);
		}
		

 

받은 아이디 값이 원하는 사진의 아이디 값일때 그 화면을 나타나게하려고 위처럼 해봤는데 

어느 사진을 터치하던 첫번째 사진부터 나오네요 

 

아직 완전초보라 잘모르는데 어디가 문제인지 좀 알려주셨으면 감사하겠습니다.

 

익명사용자 님이 2013년 5월 10일 질문

1개의 답변

0 추천
Intent와 Bundle를 이용해 이미지 id를 옮겨 새 액티비티에서 출력하는 방식이군요.

 

putExtra 메소드에 이미지 id를 잘 넣었는지,

새 액티비티에서 getExtra 메소드에 이미지 id를 잘 꺼냈는지,

플리퍼에 이미지 id를 제대로 받아서 출력을 하고 있는지

이 세가지를 체크해보시길 바랍니다.

 

Log.d 메소드로 putExtra, getExtra에서의 이미지 id를 출력해보셔서 Bundle 전송이 잘 됬는지 확인하시고,

플리퍼에 이미지를 출력하기 전에도, Log.d 메소드로 이미지 id를 출력해보세요.

 

onClick 이벤트리스너에 case 문을 쓰셨는데, 각 case 문마다 이미지 id가 각각 다르게 해주셨는지 다시 확인해보세요.
두부고기 (3,820 포인트) 님이 2013년 5월 11일 답변
해결했습니다 ㅠㅠ 감사합니당
...