안녕하세요.
옵션 메뉴를 누르면
final Dialog rl = new Dialog(this);
rl.requestWindowFeature(Window.FEATURE_NO_TITLE);
rl.setContentView(R.layout.pref);
rl.setCancelable(false);
rl.show();
이런 식으로 다이알로그가 뜨도록 해놨습니다.
R.layout.pref 에는 RelativeLayout 로 둘러쌓여있고, 안에는 이미지뷰가 많이 있습니다. 아주 많이..
그래서, 일일히 이미지뷰에 OnClickListener 를 달아 주는 것 보다는 이미지의 xml 속성에 android:onClick="prefTouch" 를 주고, case if 문으로 어떤 이미지가 눌러졌는지 확인하려고 합니다.
그런데 역시, 다이알로그 자체에는
public void prefTouch(View v) { } 를 주는 방법을 모르겠네요. 어떻게 할 수 있는가요? RelativeLayout rl2 = (RelativeLayout)rl.findViewById(R.id.layoutInside);
rl2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println(v.getId());
switch (v.getId()) {
case R.id.imageView1 :
System.out.println("1번 눌러짐");
break;
}
}
});
이렇게 하면, 레이아웃안 쪽에 있는 이미지 들의 id 들이 뜰 줄 알았는데, relative레이아웃의 id만 터치 되는 것 같더라구요.
혼자 고민해보다가 이렇게 글을 올려봅니다.
xml에 이미지뷰에 android:onClick="prefTouch" 속성 주시고 아래 같이 그냥 하면 되욬ㅋㅋㅋ
public class a extends Activity{
protected void onCreate(Bundle savedInstanceState) {
............
}
public void prefTouch(View v) {
.........
}
public void 옵션메뉴클릭(){
final Dialog rl = new Dialog(this);
rl.requestWindowFeature(Window.FEATURE_NO_TITLE);
rl.setContentView(R.layout.pref);
rl.setCancelable(false);
rl.show();
}
}