본문 바로가기

Android/Dialog

안드로이드/Android 기본 Dialog, inflate Dialog

안드로이드/Android 기본 Dialog, inflate Dialog


AlertDialog를 사용한 기본 Dialog 예제 입니다.


package arabiannight.tistory.com.simpledialog;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class TestSimpleDialogActivity extends Activity implements OnClickListener {
	
	private AlertDialog mDialog = null;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        setLayout();
        
    }
    
    @Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.btn_base:
			mDialog = createDialog();
			mDialog.show();
			break;
			
		case R.id.btn_inflate:
			mDialog = createInflaterDialog();
			mDialog.show();
			break;	

		default:
			break;
		}
	}
    
    
    /**
     * base 다이얼로그
     * @return ab
     */
    private AlertDialog createDialog() {
        AlertDialog.Builder ab = new AlertDialog.Builder(this);
        ab.setTitle("Title");
        ab.setMessage("내용");
        ab.setCancelable(false);
        ab.setIcon(getResources().getDrawable(R.drawable.ic_launcher));
         
        ab.setPositiveButton("확인", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                setDismiss(mDialog);
            }
        });
         
        ab.setNegativeButton("취소", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                setDismiss(mDialog);
            }
        });
         
        return ab.create();
    }
    
    
    /**
     * Infalter 다이얼로그
     * @return ab
     */
    private AlertDialog createInflaterDialog() {
        final View innerView = getLayoutInflater().inflate(R.layout.dialog_layout, null);
        AlertDialog.Builder ab = new AlertDialog.Builder(this);
        ab.setTitle("Title");
        ab.setView(innerView);
         
        ab.setPositiveButton("확인", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                setDismiss(mDialog);
            }
        });
         
        ab.setNegativeButton("취소", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                setDismiss(mDialog);
            }
        });
         
        return ab.create();
    }
    
    /**
     * 다이얼로그 종료
     * @param dialog
     */
    private void setDismiss(Dialog dialog){
        if(dialog != null && dialog.isShowing())
            dialog.dismiss();
    }


    /*
     * Layout
     */
    private Button baseButton = null;
    private Button inflateButton = null;
	
    private void setLayout(){
    	baseButton = (Button) findViewById(R.id.btn_base);
    	inflateButton = (Button) findViewById(R.id.btn_inflate);
    	
    	baseButton.setOnClickListener(this);
    	inflateButton.setOnClickListener(this);
    }
}





파일첨부 :


TestSimpleDialog.zip


스크린샷 :