728x90
🟦 40강. 게시글 작성 화면 구성
▶️ 게시글 작성 화면 구성
- 게시글 리스트 화면에서 메뉴 클릭 시, 게시글 작성하는 화면 나타나도록 한다.
- 여기서는 이미지 첨부가 가능하도록 구현할 것이다.
🟧 스피너 Spinner란?
- 스피너 : 값 집합에서 하나의 값을 선택할 수 있는 방법을 제공하는 것.
- 사용자가 스피너 클릭 시, 사용한 모든 값을 ‘드롭 다운’ 메뉴 형태로 내놓는다. 여기서 사용자가 원하는 값을 선택할 수 있다.
- 여기서는 사용자가 글 작성 시, 게시판 종류를 고를 수 있도록 하기 위해 사용한다.
◾BoardWriteFragment.kt
- 1) Spinner 생성해서 어댑터 연결한 뒤 이벤트 처리했다.
- 2) 이 글쓰기 프래그먼트의 툴바에 ‘메뉴’ 배치하여 이벤트 처리 (카메라/갤러리/업로드)
- 3) 만약 사용자가 업로드 버튼을 클릭하게 되면 백스택에 이전 기록을 삭제하기 위하여 fragmentRemoveBackStack() 호출하였다.
- 만약 사용자가 글 작성 후 업로드 처리하고 ‘뒤로가기’ 클릭 시, 곧장 읽기 화면으로 가도록 하기 위함.
package com.example.app3_communityapp
import android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ArrayAdapter
import com.example.app3_communityapp.databinding.FragmentBoardWriteBinding
class BoardWriteFragment : Fragment() { //'게시글' 쓰기 프래그먼트 화면
//바인딩 설정
lateinit var boardWriteFragmentBinding: FragmentBoardWriteBinding
val spinner_data =arrayOf("게시판1", "게시판2", "게시판3", "게시판4")
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
): View? {
// Inflate the layout for this fragment
boardWriteFragmentBinding = FragmentBoardWriteBinding.inflate(inflater)
//게시글 작성 프래그먼트의 Toolbar 관련 처리
boardWriteFragmentBinding.boardWriteToolbar.title= "게시글 작성"
boardWriteFragmentBinding.boardWriteToolbar.inflateMenu(R.menu.board_write_menu)
boardWriteFragmentBinding.boardWriteToolbar.setOnMenuItemClickListener{
when (it.itemId) {
R.id.board_write_menu_camera-> {
true
}
R.id.board_write_menu_gallery-> {
true
}
R.id.board_write_menu_upload-> { //사용자가 업로드 버튼 클릭 시
val act =activityas BoardMainActivity
act.fragmentRemoveBackStack("board_write")
act.fragmentController("board_read", true, true)
true
}
else -> false
}
}
//spinner 어댑터 생성
val spinnerAdapter = ArrayAdapter(
requireContext(), android.R.layout.simple_spinner_item, spinner_data
)
spinnerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
boardWriteFragmentBinding.boardWriteType.adapter= spinnerAdapter
return boardWriteFragmentBinding.root
}
}
🟧최종 모습
728x90
'App(앱)_관련 공부 모음 > [강의] Android_App Project' 카테고리의 다른 글
# PRJ_3. 커뮤니티 게시판 앱_(9) 게시글 수정 화면 구성 (0) | 2022.08.02 |
---|---|
# PRJ_3. 커뮤니티 게시판 앱_(8) 게시글 읽기 화면 메뉴 구성 (0) | 2022.08.02 |
# PRJ_3. 커뮤니티 게시판 앱_(6) 게시글 읽기 화면 구성 (0) | 2022.07.29 |
# PRJ_3. 커뮤니티 게시판 앱_(5) ToolBar에 게시판 메뉴 적용 (0) | 2022.07.28 |
# PRJ_3. 커뮤니티 게시판 앱_(4) 게시판 항목 RecyclerView (0) | 2022.07.28 |