setTag, getTag 사용하기(2) - ImageView

Posted by ITPangPang
2016. 10. 22. 16:55 안드로이드(android)/View



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!