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

다이얼로그를 class 파일과 연동이 가능한지 궁금합니다.

0 추천
다이얼로그 창에서 xml 파일과 연동?하여 버튼이나 텍스트 뷰들에 대한 이벤트 처리는 이해되지만,

다이얼로그 창에서 특정 페이지(class 파일)를 불러 올 수 있는지 궁금합니다.

다이얼로그 창안에 특정 페이지를 안에 담을 수 있을까요? (xml이 아닌)

예를들어, 그래프를 그리는 class 파일이 있고

다이얼로그 창이 띄워지면 그래프를 그리는 메서드를 자동으로 호출하여

다이얼로그 창 안에서 그래프를 그릴 수 있게 해 줄 수 있는지 궁금합니다.
익명사용자 님이 2016년 4월 12일 질문

2개의 답변

0 추천
 
채택된 답변

다이얼로그에 커스텀 xml을 적용하실 줄 아신다면 해당 xml에 그래프를 그릴 공간(RelativeLayout등)을 잡아 두고 해당 뷰에 addView로 추가하시면 됩니다.

RelativeLayout container = (RelativeLayout)view.findViewById(R.id.custom_dialog_container);
container.addView(new CustomView());

물론 CustomView 클래스는 View를 상속한 클래스여야 하며 위와 같은 방식이 아닐경우 FrameLatout을 잡아두고 Canvas를 사용해서 직접 그려주는 방식을 쓸수도 있겠네요.

 

ps: 굳이 다이얼로그를 사용하지 말고 Activity를 다이얼로그처럼 꾸미는 방법도 있습니다.

이카르테 (3,570 포인트) 님이 2016년 4월 12일 답변
0 추천
setContentView(View view) 메소드가 있습니다.

혹은 setContent(int layoutResId)나 setContentView(View view, LayoutParams params)도 있구요.

적당히 활용하시면 됳것 같습니다.

여기서는 클래스라고 하셨으니, View를 상속받은(혹은 뷰그룹이라던지..) 클래스겠네요.

setContentView(new CustomView(context));

이런식으로 해주시면 됩니다.

물론 LayoutParam은 적절히 설정해주셔야겠죠.
모나미153 (17,540 포인트) 님이 2016년 4월 12일 답변
모나미153님이 2016년 4월 12일 수정
AlertDialog.Builder 사용시
setContentView대신 setView를 사용합니다.
다이얼로그에 들어가는 UI가 많다면 아랫분 말씀다로 dialog형태의 activity를 이용하시면 되겠네요.
...