2010/04/28
[Android Dev.] Custom Dialog 생성하기
Custom Dialog 를 만들어보기위해 Android Developer 사이트의 예제(http://developer.android.com/guide/topics/ui/dialogs.html#CustomDialog)를 사용해 보았는데 에러가 발생하였다.
이 문제가 발생한 것은 Dialog 생성시 생성자에 Context 를 넘겨 주도록 되어 있는데 예제에서는 getApplicationContext() 를 호출하여 Context를 가져와서 넘겨 주었는데 이 부분에 문제가 있어 보인다. Dialog 생성자 호출 부분을 this 로 넘겨주면 에러가 발생하지 않고 Dialog가 생성이 되었다.
Custom Dialog 생성에 사용한 xml layout 리소스
Android 의 Dialog 는 Title 영역과 View 영역으로 나뉘어 지며 Title 영역은 Title 을 지정하지 않아도 사라지지 않고 자리를 차지 한다. 따라서 Titlte 을 지정하지 않을 경우 아래와 같이 아무것도 표시되지 않은 영역이 남아있다.
Title 이 필요없는 경우에는 AlertDialog 를 이용하여 Dialog 를 생성하는 것도 하나의 방법이다.<
Original Post : http://neodreamer-dev.tistory.com/427
// Custom Dialog 생성 예제
Context mContext = getApplicationContext();
Dialog dialog = new Dialog( mContext );
dialog.setContentView(R.layout.custom_dialog);
dialog.setTitle("Custom Dialog");
TextView text = (TextView) dialog.findViewById(R.id.text);
text.setText("Hello, this is a custom dialog!");
ImageView image = (ImageView) dialog.findViewById(R.id.image);
image.setImageResource( R.drawable.icon );
에러 발생 화면
이 문제가 발생한 것은 Dialog 생성시 생성자에 Context 를 넘겨 주도록 되어 있는데 예제에서는 getApplicationContext() 를 호출하여 Context를 가져와서 넘겨 주었는데 이 부분에 문제가 있어 보인다. Dialog 생성자 호출 부분을 this 로 넘겨주면 에러가 발생하지 않고 Dialog가 생성이 되었다.
Custom Dialog 생성에 사용한 xml layout 리소스
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<Button
android:text="@+id/Button01"
android:id="@+id/Button01"
android:layout_height="wrap_content"
android:layout_width="fill_parent"/>
<TextView
android:text="@+id/TextView01"
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<EditText
android:text="@+id/EditText01"
android:id="@+id/EditText01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
//Context mContext = getApplicationContext();
Dialog dialog = new Dialog( this );
dialog.setContentView( R.layout.mydialog );
dialog.setTitle( "MyDialog 1" );
Button btnMyDlg = (Button)dialog.findViewById( R.id.Button01 );
btnMyDlg.setText( "My Button on Custom Dialog" );
dialog.show();
Android 의 Dialog 는 Title 영역과 View 영역으로 나뉘어 지며 Title 영역은 Title 을 지정하지 않아도 사라지지 않고 자리를 차지 한다. 따라서 Titlte 을 지정하지 않을 경우 아래와 같이 아무것도 표시되지 않은 영역이 남아있다.
Title 을 지정하지 않는 Dialog
Title 이 필요없는 경우에는 AlertDialog 를 이용하여 Dialog 를 생성하는 것도 하나의 방법이다.<
Original Post : http://neodreamer-dev.tistory.com/427
Labels:
Android
,
Android Development
,
Custom Dialog
,
dialog
,
TistoryOldPost
,
안드로이드
,
안드로이드 개발
Subscribe to:
Post Comments
(
Atom
)
No comments :
Post a Comment