아래와 같이 구성을 하였습니다.
백키를 누를경우 dismiss ? cancel이 되나
외부 영역을 클릭할 경우 종료가 되지 않았습니다.
어떻게 수정해야하는지 확인부탁드립니다.
AppCompatActivity에서 Custom dialog를 생성하였습니다.
mShoppingDialog = new DialogShopping(RecipeShoppingMemoActivity.this,
getResources().getString(R.string.info),
getResources().getString(R.string.shoppingmemo),
leftShoppingClickListener,
rightShoppingClickListener
);
mShoppingDialog.setCancelable(true);
mShoppingDialog.setCanceledOnTouchOutside(true);
mShoppingDialog.show();
public class DialogSave 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.dialog_save);
setLayout();
setTitle(mTitle);
setContent(mContent);
setClickListener(mLeftClickListener , mRightClickListener);
}
public DialogSave(Context context) {
// Dialog 배경을 투명 처리 해준다.
super(context , android.R.style.Theme_Translucent_NoTitleBar);
}
public DialogSave(Context context , String title ,
View.OnClickListener singleListener) {
super(context , android.R.style.Theme_Translucent_NoTitleBar);
this.mTitle = title;
this.mLeftClickListener = singleListener;
}
public DialogSave(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 if(left==null && right!=null ){
mLeftButton.setOnClickListener(right);
}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);
}
}