반응형
안드로이드/Android Custom Dialog 만들기
TestCustomDialogActivity.Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package arabiannight.tistory.com; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Toast; import arabiannight.tistory.com.popup.CustomDialog; public class TestCustomDialogActivity extends Activity { private CustomDialog mCustomDialog; @Override public void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.main); } public void onClickView(View v){ switch (v.getId()) { case R.id.bt_main: mCustomDialog = new CustomDialog( this , "8월의 크리스마스!!" , "영화보러가자~!!!" , leftClickListener, rightClickListener); mCustomDialog.show(); break ; } } private View.OnClickListener leftClickListener = new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "왼쪽버튼 Click!!" , Toast.LENGTH_SHORT).show(); } }; private View.OnClickListener rightClickListener = new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getApplicationContext(), "오른쪽버튼 Click!!" , Toast.LENGTH_SHORT).show(); } }; } |
CustomDialog.Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | package arabiannight.tistory.com.popup; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.TextView; import arabiannight.tistory.com.R; public class CustomDialog extends Dialog{ @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); WindowManager.LayoutParams lpWindow = new WindowManager.LayoutParams(); lpWindow.flags = WindowManager.LayoutParams.FLAG_DIM_BEHIND; lpWindow.dimAmount = 0 .8f; getWindow().setAttributes(lpWindow); setContentView(R.layout.custom_dialog); setLayout(); setTitle(mTitle); setContent(mContent); setClickListener(mLeftClickListener , mRightClickListener); } public CustomDialog(Context context) { // Dialog 배경을 투명 처리 해준다. super (context , android.R.style.Theme_Translucent_NoTitleBar); } public CustomDialog(Context context , String title , View.OnClickListener singleListener) { super (context , android.R.style.Theme_Translucent_NoTitleBar); this .mTitle = title; this .mLeftClickListener = singleListener; } public CustomDialog(Context context , String title , String content , View.OnClickListener leftListener , View.OnClickListener rightListener) { super (context , android.R.style.Theme_Translucent_NoTitleBar); this .mTitle = title; this .mContent = content; this .mLeftClickListener = leftListener; this .mRightClickListener = rightListener; } private void setTitle(String title){ mTitleView.setText(title); } private void setContent(String content){ mContentView.setText(content); } private void setClickListener(View.OnClickListener left , View.OnClickListener right){ if (left!= null && right!= null ){ mLeftButton.setOnClickListener(left); mRightButton.setOnClickListener(right); } else if (left!= null && right== null ){ mLeftButton.setOnClickListener(left); } else { } } private TextView mTitleView; private TextView mContentView; private Button mLeftButton; private Button mRightButton; private String mTitle; private String mContent; private View.OnClickListener mLeftClickListener; private View.OnClickListener mRightClickListener; /* * Layout */ private void setLayout(){ mTitleView = (TextView) findViewById(R.id.tv_title); mContentView = (TextView) findViewById(R.id.tv_content); mLeftButton = (Button) findViewById(R.id.bt_left); mRightButton = (Button) findViewById(R.id.bt_right); } } |
반응형
'프로그래밍 정리 > 안드로이드' 카테고리의 다른 글
폴더 삭제(안의 파일들도 같이 삭제 (0) | 2012.06.25 |
---|---|
APPWIDGET_RESIZE (0) | 2012.06.21 |
ListView, BaseAdapter (0) | 2012.06.19 |
java에서 implements Serializable(객체 직렬화란) (0) | 2012.06.15 |
안드로이드에 탑재된 리눅스 커널 버전 확인하기 (0) | 2012.06.13 |