setTag, getTag 사용하기(2) - ImageView
setTag, getTag 사용하기(2)
ImageView
ㆍ 자 이번에는 ImageView에 setTag()를 넣고 필요할때
getTag()를 통해서 사용해보도록 하겠습니다
ㆍ 간단한 예제로 퀴즈정도 풀때 Tag를 사용하는 방법에
대해 알아보겠습니다.
오늘 만들어 볼 결과입니다
자 여기서 클릭하고 있는것은..
ImageView입니다..
(TextView 아님 ㅠ.)
사과, 복숭아, 오렌지, 메론
이미지를 넣어야하지만..
이미지가 없어서..
어떻게 만들까?
저 퀴즈에서
저장된 답은
"apple"이라고
가정하겠습니다
위에서 이미지를
선택했을때
apple과 비교해서
정답인지 오답인지
알아야 됩니다.
어떻게 만들까요?
물론 Tag를
안써도 만들 수 있지만
Tag를 사용하면 좀 더
편하게 만들 수 있습니다.
일단 만들어보자!
일단
ImageView 4개가
필요하겠죠
그리고 선택을 해야하므로
클릭리스너를 달아야합니다!
아 그리고
정답 String으로
"apple"을 넣겠습니다
public class MainActivity extends AppCompatActivity
{
ImageView iv_apple;
ImageView iv_peach;
ImageView iv_orange;
ImageView iv_melon;
String answer = "apple";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_apple = (ImageView)findViewById(R.id.iv_apple);
iv_peach = (ImageView)findViewById(R.id.iv_peach);
iv_orange = (ImageView)findViewById(R.id.iv_orange);
iv_melon = (ImageView)findViewById(R.id.iv_melon);
iv_apple.setOnClickListener(myListener);
iv_peach.setOnClickListener(myListener);
iv_orange.setOnClickListener(myListener);
iv_melon.setOnClickListener(myListener);
}
View.OnClickListener myListener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
}
};
}
그 다음에
각각의 과일 ImageView에
Tag를 달아줍니다.
사과 이미지가 정답이므로
사과에는 apple이라는
tag를 달면 되겠죠?
iv_apple.setTag("apple");
iv_peach.setTag("peach");
iv_orange.setTag("orange");
iv_melon.setTag("melon");
자 거의
완성됬죠?
이제 이미지를
선택했을때
Tag값과 answer값을
비교해서
정답/오답을
판단해주시면
끝납니다!
OnClickListener
부분에 넣으면 되겠죠?
지난글에서는
getTag를 int형으로
받았는데
그 부분만 String으로
바꿔주고
equals로 비교해주면
끝납니다!
완성된 전체코드를
보겠습니다.
public class MainActivity extends AppCompatActivity
{
ImageView iv_apple;
ImageView iv_peach;
ImageView iv_orange;
ImageView iv_melon;
String answer = "apple";
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv_apple = (ImageView)findViewById(R.id.iv_apple);
iv_peach = (ImageView)findViewById(R.id.iv_peach);
iv_orange = (ImageView)findViewById(R.id.iv_orange);
iv_melon = (ImageView)findViewById(R.id.iv_melon);
iv_apple.setTag("apple");
iv_peach.setTag("peach");
iv_orange.setTag("orange");
iv_melon.setTag("melon");
iv_apple.setOnClickListener(myListener);
iv_peach.setOnClickListener(myListener);
iv_orange.setOnClickListener(myListener);
iv_melon.setOnClickListener(myListener);
}
View.OnClickListener myListener = new View.OnClickListener()
{
@Override
public void onClick(View v)
{
String ivKey = (String)v.getTag();
if(ivKey.equals(answer))
{
Toast.makeText(getApplication(),"정답",Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(getApplication(),"오답",Toast.LENGTH_SHORT).show();
}
}
};
}
정말 간단하지 않나요?
클릭한 ImageView의
Tag를 String에 담고
그 값을 정답 String과
비교해서 Toast를
띄워주는 것입니다!
아주 간단하게 Clear!
'안드로이드(android) > View' 카테고리의 다른 글
setTag, getTag 사용하기(1) - findViewWithTag (0) | 2016.10.20 |
---|---|
TextView 내부 크기 구하기 - Rect, getPaint() (1) | 2016.10.17 |
View를 최상위로 올리기 - BringToFront (0) | 2016.10.15 |
TextView가 물흐르듯 움직인다? marquee를 써보자 (0) | 2016.06.14 |
다른 Activity(액티비티), Fragment에 있는 View값 가져오기 (1) | 2016.04.28 |