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

아래의 온클릭 부분에서 View.getid에 대해 질문있습니다.

0 추천

 

 

안넝하세요.

아래의 onclick에서 view.getId()에 대해서 이해가 힘들어서 글을 올립니다.

아래의 온클릭을 사용하기 전에, Dialog를 상속받았고 인터페이스로 온클릭리스너를 두었습니다.

implements View.OnClickListener

 

그런데 프로그램을 구성하는 도중 아래의 if문이 이해가 가질 않아서 글을 씁니다.

 R.id.Custom_Button 같은 경우에는 제가 xml버튼을 만들었을때의 id입니다.

그런데 view.getId() == R.id.Custom_Button 이부분이 이해가 잘 가질 않습니다.

무엇인가를 클릭을 했을때의 그 뷰가, 버튼의 아이디와 같다면, isShowing()과 dismiss() 이부분이 쉽게

이해가 가질 않습니다 ..

public void onClick(View view) {
    if (view.getId() == R.id.Custom_Button) {
        if (isShowing()) {
            dismiss();
        }
    }
}
공산당 (1,960 포인트) 님이 2016년 11월 28일 질문

1개의 답변

0 추천
 
채택된 답변
선행 조건이 Dialog 클래스 내에서 onClick 를 시도했을 경우에 Dialog 의 메소드인 isShowing 과 dismiss 를 호출 해서

현재 dialog 가 보여지고 있는지 보여지고 있으면 닫겠다라는 의밉니다.

결론적으로 문서를 파악해서 의미를 알지 못하면 코딩하는것에 의미가 없습니다. -_ -

그리고 아이디 돌려가면서 질문하기 보다는 그냥 하나 쓰세요 -_ -

 

https://developer.android.com/reference/android/app/Dialog.html#isShowing()
aucd29 (218,390 포인트) 님이 2016년 11월 28일 답변
공산당님이 2016년 11월 29일 채택됨
답변 감사합니다.

그럼 위와 같은 다이얼로그 부분에서 현재 xml에 대한 부분은 텍스트뷰와 버튼에 ㄷ한 부분으로 이루어져있는데, 이미지뷰를 더해서 다이얼로그 부분을 좀 더 꾸미고 싶은데 그러면 매번 클래스와 xml을 1개씩 계속적으로 늘려주어야 하는건가요?

만약에, 저 위의 다이얼로그에다가 지금처럼 텍스트뷰와 버튼으로 구성된것이 아닌 또다른 다이얼로그가 필요하다면 매번 생성을 해주어야 하는건지 궁금합니다.
어떻게 구성하느냐에 따라 다릅니다.
레이아웃이 크게 변경되지 않으면 리소스를 전달 받는 메소드를 추가해서 변경해서 사용하면 되는 것이고 그게 아니라면 만들어야 겠죠
음...예를들어서, 이미지뷰 제가 사용하는 아래의 Dialog에다가
추가를 시켜주고 싶다면, 어떤 방식으로 접근을 해야 할까요 ...?

 Button btn;

    public Custom_Dialog(Context context) {
        super(context);

        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_custom__dialog);

        btn = (Button) findViewById(R.id.Custom_Button);
        btn.setOnClickListener(this);
    }


    /**
    Dialog 클래스 내에서 onClick 를 시도했을 경우에 Dialog 의 메소드인 isShowing 과 dismiss 를 호출 해서
    현재 dialog 가 보여지고 있는지 보여지고 있으면 닫겠다라는 의미
    **/



    public void onClick(View view) {
        if (view.getId() == R.id.Custom_Button) {
            if (isShowing()) {
                dismiss();
            }
        }
    }
버튼이 보이니 눌르는건데 show 를 확인할 필요도 없죠 dismiss 이외의 다른걸해야될 수도있으니 click event 만 외부에서 사용할 수있도록 추가하는 정도? 만 하면 될것 같네요
...