안드로이드 Spinner(스피너) 값 전달하기
2013. 8. 29. 23:06
반응형
스피너를 이용하여 값을 전달한 후 값에 따른 이미지를 출력하였다.
string.xml에 스피너에 쓰일 목록을 만들어둔다.
<string name="season">시즌</string> <string name="season_prompt">시즌 선택</string> <string-array name="season_array"> <item>봄</item> <item>여름</item> <item>가을</item> <item>겨울</item> </string-array>
그 다음 send.xml
<Spinner android:id="@+id/spinner_season" <!--스피너 아이디--> android:layout_width="wrap_content" android:layout_height="wrap_content" android:prompt="@string/season_prompt"<!-- string.xml에서 작성한 목록 --> android:layout_marginRight="10dp" />
이렇게 스피너를 만들어준다.
그리고 SendActivity.java 에서 스피너 값을 보내주자 OnCreate 부분에
Spinner spinner = (Spinner)findViewById(R.id.spinner_season);//send.xml의 스피너 아이디 ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.season_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter);
이렇게 스피너를 선언해주고 Onclick메소드에 스피너 값을 인텐트에 태워 보낸다.
String str_season = spinner.getSelectedItem().toString(); Intent it3 = new Intent(this,ReceiveActivity.class); it3.putExtra("it3_season", str_season); //it3_season 이라는 스트링으로 str_season 값을 넘긴다. startActivity(it3);
이제 스피너 값에 따른 이미지를 출력하기 위해 receive.xml 에
이미지 뷰를 만들었다
<ImageView android:id="@+id/season_year" android:layout_width="wrap_content" android:layout_height="wrap_content" />
이제 ReceiveActivity.java 에서 받아보자.
마찬가지로 OnCreate 부분에
Intent it3=getIntent(); //인텐트를 받아오고 String str_season= it3.getStringExtra("it3_season"); //it3_season으로 보내온 값을 str_season에 저장 ImageView season = (ImageView)findViewById(R.id.season_year); //사진을 출력할 이미지뷰 if(str_season.equals("봄")){ //str_season 값이 봄이라면 BitmapDrawable img_season = (BitmapDrawable)getResources().getDrawable(R.drawable.spring); //봄 사진 가져와서 season.setImageDrawable(img_season);//봄 사진 출력 }else if(str_season.equals("여름")){ BitmapDrawable img_season = (BitmapDrawable)getResources().getDrawable(R.drawable.summer); season.setImageDrawable(img_season); }else if(str_season.equals("겨울")){ BitmapDrawable img_season = (BitmapDrawable)getResources().getDrawable(R.drawable.autumn); season.setImageDrawable(img_season); }else if(str_season.equals("가을")){ BitmapDrawable img_season = (BitmapDrawable)getResources().getDrawable(R.drawable.winter); season.setImageDrawable(img_season); }
여기서 애를 먹었던게 if 값을 그냥 평소 하던대로
if(str_season == "봄") 이런식으로 해줬는데 안되서 찾아보니까 String 값은
str_season.equals("봄")
이런식으로 해줘야 했다.
이제 스피너로 봄 값이 넘어오면 이미지뷰에 봄 사진을 넣어주고 여름이면 여름사진을 보여준다.
아 소스코드 태그 은근 귀찮네..
반응형
'지식메모 > 안드로이드 Android' 카테고리의 다른 글
안드로이드 레이아웃 버튼 보이기 숨기기 (1) | 2013.09.22 |
---|---|
안드로이드 EditText 에디트텍스트 값 남겨두기 (0) | 2013.09.09 |
안드로이드 dip px 변환하기 (0) | 2013.07.23 |
안드로이드 버튼 여러개 쓰기 (0) | 2013.07.21 |
안드로이드 공유하기 기능쓰기 (7) | 2013.07.21 |