Dialog / Alert Dialog 대화상자 by 모니브

안드로이드에서 대화상자는 많이 이용된다. 오늘은 대화상자를 끝내보도록 한다.

Dialog

사용자가 액티비티를 만들어서 이를 대화상자 형식으로 띄워준다.

자바 클래스 생성 후 DialogFragment 를 extends 해준다.

그리고 @override 메소드로 onCreateView 메소드를 가져온후 코딩한다.

자동생성되는 리턴값을 View rootView = inflater.inflate(R.layout.DialogExam, container, false); 로 해준다.!!

getDialog().setTitle("DialogFragment 연습예제"); // 대화상자 제목 설정 메소드






AlertDialog 

xml로 대화상자 화면을 구성하는 것이 아니라 빌더 코드 형식으로 만들어진다. 따라서 xml 파일은 필요없고

자바클라스 하나만 있으면 된다~! 여기서 Dialog 와의 다른점은

Dialog 에서는 xml을 띄워주는형식이기 떄문에 onCreateView 메소드를 사용하지만

AlertDialog는 Dialog 그 자체이기 떄문에 Dialog onCreateDialog 메소드를 가져온다..!!

public class alertDialog extends DialogFragment {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        return new AlertDialog.Builder(getActivity())

        .setIcon(R.drawable.ic_launcher)

                .setTitle("Alert 다이얼로그 예제")

                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                })
                .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                }).create();




    }

예제 소스이다.!! return 에 builder가 들어가고 파라미터로 액티비티. 가장중요한게 .set 시리즈들!! 마지막마무리로 .create();




공통사항 // 메인엑티비티에서 dialog 호출할때 FragmentManager 라는 것이 필요하다.

onCreate 메소드 시작 전 FragmentManager fm = getFragmentManager(); 을 선언해주자.

메인 java에서 Dialog, AlertDialog 불러오는건 동일형식!!

Intent by 모니브

인텐트 -> MFC 에서 IPC 개념이라고 보면 될 것 같다.

인텐트에는 정확한 내용을 보내는 명시적 explicit 과 

대충 보내놓고 알아서 해석하라는 암시적 implicit 이 있는데

5.0 롤리팝부터는 명시적만 허용한다하니... 그렇다고 한다.

우선 인텐트를 사용하는 예시는

Intent 변수명 = new Intent(); <-이건 암시적. 왜?  괄호 안에 아무것도 없다.

Intent 변수명 = new Intent(콘텍스트, 실행시킬클라스.class); <- 이게 명시적

저 안에 데이터를 정확한 데이터를 심어쥬자.

인텐트에 데이터 집어넣기.

변수로 선언된 인텐트에는 2열의 공간이 있다고 이해하자.

변수명.putExtra("레이블명", 데이터형으로 선언된 변수)

라고 제목과 내용을 짝지어서 저장한다.

이걸 보면 인텐트를 받는 상대편에서는 레이블명을 이용하여 데이터를 꺼낼수있다 라고 추측해볼 수 있다.

---------------상대편에서 받을때
Intent 변수명 = getIntent();

로 받아서 데이터를 꺼낼떄는

데이터형 변수 = (데이터형)변수명.getSerializableExtra("레이블명"); <- 데이터형 캐스팅 해줘야함







Prefix 와 Infix by 모니브

infix : 일반적으로 사람이 쓰는 식, 연산자가 변수 사이사이에 있으며 직관적


prefix : 변수 나열 후 연산자 나열. 연산자 우선순위에 유의. 장점, 괄호가 필요없음.

컴퓨터가 prefix를 사용하는 이유

앞에서부터 차례대로 읽어가면서, 숫자를 만나면 스택에 넣고, 연산자를 만나면 가장 최근값 2개를 연산하여 다시 스택 반복.

순차적 접근 가능.!!!! 우선순위 상관없이 최근 변수 2개 연산만 신경쓰면 됨,

1. 연산자와 변수 다른 스택에 저장. 그러다가 연산자 스택에 우선순위가 낮은게 들어오려면 밑에꺼 다 pop!!

2. (는 들어오면 그 안에서 다시 우선순위 낮으면 pop 하다가 ) 들어오면 그 안에 전부다 pop!!!!



연습해보기




o 작은 오 by 모니브

큰 O 의 의미를 다시 한번 생각해보면

좌측의 식은 궁극적으로 우측의 식보다 아무리 나빠도 나쁘지 않다,

즉, n의 갯수가 궁극으로 다가갈때 우측의 식보다 좋다. 라고 할 수 있다.

작은오  o 는 궁극적으로 라는 범위를 모든 범위에서 라고 확장시켰다고 할 수 있다.


 

Θ by 모니브

Θ

지난 글에서 오메가와 빅오에 대해 말하는 도중

좌측과 우측의 식이 같은 차수일떄 양쪽 모두 성립하는 것을 보았다.

이걸 Θ 라고한다.!!

1 2 3 4 5 6 7