본문 바로가기
[ Developer ]/Android

[Android] 안드로이드 Action Bar 이벤트 주기 액션바

by 김현섭. 2016. 7. 19.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Android 상단 버튼을 이용해서 액션 주기

우선 Activity를 하나 생성한다


그런 후 완료 버튼을 생성하기 위해서 menu 폴더에 파일을 생성한다


그런 후 이전에 배웠던 list_menu.xml과 동일한 구조를 이용해서 버튼을 생성한다
이제는 WritePostActivity에서 기존과 동일하게 버튼을 추가해주는 로직을 작성한다


이제 onCreate안에 로직을 이용해서 뒤로가기 버튼으로 액티비티를 종료하는 과정을 추가한다


위와 같이 ActionBar를 추가 후 보여주는 옵션을 설정하면 된다
ActionBar는 다음 것으로 추가해주면 된다


그리고 나서 아이템을 선택하면 액션을 주는 메소드에서 로직을 작성해준다


MainActivity에서 옵션을 선택하면 WritePostActivity를 열게 끔 지정을 해주면 된다
뒤로 가기 버튼을 실행하기 위해서는 Manifest.xml에서 하나를 추가해주면 된다


위와 같이 meta-data를 입력해주면 뒤로 가기 버튼 클릭 시 홈으로 돌아가게 된다

결과를 보면 다음과 같다


새글 등록 버튼을 누르면 다음과 같이 WritePostActivity로 넘어오게 되고 
뒤로 가기 버튼을 누르면 이전 화면으로 간다

이제 activity_write_post에서 설정을 해준다
EditText를 만들어주는데 멀티 라인을 만들어주기 위해 옵션값을 줘야한다


위와 같이 inputType으로 textMultiLine을 주면 여러 줄을 입력 가능하다
이제는 다시 WritePostActivity.java로 가서 요소들을 추가해준다


etPost로 EditText를 가져온다
그리고 난 후 버튼을 클릭 시 이벤트를 주는데 Validation Check를 우선적으로 해준다


이제 포스트를 전송하는 로직을 작성하면 된다
그러기 전에 우선 Facebook.java에서 publishing 메소드를 작성해준다


모바일 인터넷을 사용해야 하기 때문에 Thread로 처리를 하면 된다
이제 auth로 와서 인증이 되었다면 글쓰기를 처리하게끔 하면 된다

하지만 auth로 올 때 글쓰기에서 들어왔다는 것을 걸러줘야 한다


그래서 위와 같이 WritePostActivity에서 온 것인지를 비교해서 writePost를 실행하게 한다
아직 writePost 메소드를 생성하지 않았기 때문에 WritePostActivity.java에서 생성을 해주면 된다


writePost를 작성해주고 publishing을 실행시킨 후 finish 처리한다
그러나 작성 후 작성이 된 타임라인이 업데이트 되지 않기 때문에 따로 처리를 해준다

MainActivity에서 intent를 요청 코드와 함께 보낸다



그런 후 밑에서 결과를 받는 처리를 해주고 RESULT_OK라면 타임라인을 재 로드한다
이제 Facebook.java에서 추가를 해준다

우선 Interface를 추가한다


이제는 publishing 뒤에다가 파라미터를 추가하고 after.doAfter를 실행시킨다


이제 다시 WritePostActivity로 와서 로직을 마무리한다
Handler를 추가하고 Handler 처리를 한다 (Thread 안쪽 이기 때문에)