Android Project (33) 썸네일형 리스트형 [Android/Kotlin] 커뮤니티앱(12) - 내가 쓴글만 수정,삭제 가능하도록 이번에는 게시글 수정,삭제를 글쓴 사람만 할수있게 해볼것이다 글쓴이의 uid와 현재 나의 uid가 같으면 햄버거바를 보여줘서 수정,삭제를 할수있는 버튼이 뜨도록 할것이다 일단 레이아웃에 가서 visibility = "invisible" 로 설정해서 햄버거바 이미지뷰를 기본적으로 안보이게 설정해준다 그리고 BoardInsideActivity로 가서 현재내 uid와 글쓴사람의 uid가 같으면 햄버거바를 보여주고, 같지 않으면 햄버거바를 보여주지 않도록 아래와같이 코드를 작성해준다 // board데이터 받아오는 함수 private fun getBoardData(key : String){ // 데이터 가져오기 val postListener = object : ValueEventListener { override.. [Android/Kotlin] 커뮤니티앱(11) - 로그아웃 홈화면에서 상단에있는 햄버거바 버튼을 누르면 로그아웃을 할수있는 창이 나타나고, 로그아웃 버튼을 누르면 로그아웃이 완료되면서 introActivity로 이동할수있게 만들어볼것이다 먼저 로그아웃창과 레이아웃을 만들어준다 레이아웃은 완전 간단하게 로그아웃버튼만 가운데에 배치해줬다 activity_setiing.xml 이제 이 버튼을 클릭했을때 로그아웃이 되고, IntroActivity로 이동하도록 해준다 근데 뒤로가기를 누르면 기존 엑티비티가 나오는 문제가 발생하기 때문에 기존의 엑티비티들을 지워주는 코드도 작성해준다. package com.example.mysololife.setting class SettingActivity : AppCompatActivity() { private lateinit var .. [Android/Kotlin] 커뮤니티앱(10) - 게시글 삭제, 수정 이번에는 게시글 삭제, 수정을 할수있도록 해볼것이다 햄버거 버튼을 누르면 삭제와 수정이 가능하도록 할것이기 때문에 레이아웃에 햄버거버튼을 추가로 디자인해준다 activity_board_inside.xml 햄버거바 클릭시 다이얼로그창을 띄울것이기때문에 다이얼로그창 레이아웃을 생성해서 디자인해준다 custom_dialog.xml 그런다음 showDialog()함수를 만들어서 다이얼로그창을 띄우는 코드를 적어주고, 수정버튼을 눌렀을때와 삭제버튼을 눌렀을때 잘 나오는지 확인해보기위해서 토스트메시지를 띄워서 확인해준다 # 게시글 삭제 먼저 삭제버튼 동작하는것부터 작성해볼건데, 삭제버튼을 누르면 게시글이 삭제가 되야할것이다 즉, 삭제버튼을 누르면 키값이 삭제되야하기 때문에, 키값을 찾아서 삭제해주면된다 키값을 찾기.. [Android/Kotlin] 커뮤니티앱(9) - 게시글 이미지 업로드 아직 게시판 이미지 업로드부분은 하지 않았기때문에 지금 해볼것이다 이미지 업로드를 하기위해서는 권한추가를 해줘야되기때문에 메니페스트로 이동해서 아래 코드를 추가해준다 AndroidManifest.xml + 이미지를 클릭시 갤러리로 이동할수있게했고, 갤러리에서 데이터를 받아와서 받아온 데이터가 + 이미지쪽에 표시되도록 코드를 짜주었다 // imageArea 클릭시 binding.imageArea.setOnClickListener { // 갤러리로 이동 val gallery = Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI) startActivityForResult(gallery, 100) } } override fun onA.. [Android/Kotlin] 커뮤니티앱(8) - 게시글 클릭 이제 저번까지 만든 게시판 리스트뷰를 클릭하면 게시판 안쪽으로 들어가서 볼수있게 할것이다 그리고 아직 이미지 업로드는 해주지 않아서 파이어베이스를 통해 이미지 업로드도 해볼것이다 게시판을 클릭해서 세부내용을 보는 방법은 두가지로 생각해볼수있다 첫번째 방법은 게시글을 클릭하면 listview에 있는 제목,내용,시간 데이터를 다 다른 엑티비티로 전달해주는 방법이다 두번째 방법은 파이어베이스에서 board데이터 안에 있는 id의 값이 제목,내용,시간,uid를 다 포함하고있기 때문에, board데이터 안에 있는 id를 기반으로 데이터를 받아오는 방법이 있다 두가지 방법을 다 해볼건데, 사실 두번째 방법이 더 좋은방법이라고 할수있다 첫번째 방법부터 실행해볼것이다 먼저 리스트뷰 아이템을 클릭하면 이동할 엑티비티와 .. [Android/Kotlin] 커뮤니티앱(7) - 게시글 만들기 이제 자취톡 부분에 게시판 기능을 만들어볼것이다 일단 fragment_talk.xml로 가서 게시물작성버튼을 추가로 디자인해준다 fragment_talk.xml 그리고 게시물작성 버튼을 누르면 이동할 엑티비티인 BoardWriteActivity와 xml파일을 만들어주고, TalkFragment로 가서 게시물 작성버튼을 눌렀을때 BoardWriteActivity로 이동하는 코드를 짜준다 // 게시물 작성버튼 눌렀을때 binding.writeBtn.setOnClickListener { val intent = Intent(context, BoardWriteActivity::class.java) startActivity(intent) } TalkFragment.kt 그런다음 activity_board_write.. [Android/Kotlin] 커뮤니티앱(6) - 북마크탭 만들기 북마크탭에 구현해볼것은 내가 북마크한 컨텐츠만 북마크탭에 나타나도록 해볼것이다 현재 컨텐츠에 대한 정보와 북마크에 대한 정보들도 알고있기때문에 그걸활용해서 북마크탭을 눌렀을때 모든 컨텐츠에 대한 데이터를 다 가져오고 북마크데이터를 가져와서 북마크에 있는 id값을 가지고 있는 애들만 노출시키도록 할것이다 BookmarkFragment로 가서 아래순서대로 코드를 짜줄것이다 1. 전체 카테고리에있는 컨텐츠 데이터들을 다 가져온다 2. 사용자가 북마크한 정보를 다 가져온다 3. 전체 컨텐츠 중에서, 사용자가 북마크한 정보만 보여준다 1번을 실행시켜줄려면 DatabaseReference를 선언해서 가져와야하는데 매번 선언하기가 귀찮기때문에 좀더 간단하게 해주기위해 FBRef.kt 파일에가서 해당 코드를 추가시켜준.. [Android/Kotlin] 커뮤니티앱(5) - 북마크 만들기 북마크를 만들기전에 먼저 저번시간에 짜줬던 코드를 조금 다듬어볼것이다 리사이클러뷰 아이템을 클릭했을때 ContentShowActivity(웹사이트)로 이동하는 코드를 조금 더 간단하게 수정할것이다 ContentListActivity와 ContentRVAdapter에 있는 리사이클러뷰 아이템 클릭시 실행되는 코드를 삭제해준다 아래 작성해놓은 코드들을 삭제시켜준다 // // 리사이클러뷰 아이템 클릭시 // rvAdapter.itemClick = object : ContentRVAdapter.ItemClick { // override fun onClick(view: View, position: Int) { // // Toast.makeText(baseContext, items[position].title, T.. [Android/Kotlin] 커뮤니티앱(4) - 꿀팁 페이지 만들기 # fragment_tip.xml 디자인 먼저 꿀팁부분 레이아웃을 디자인해줄것이다 맨 마지막줄 한개는 비어있게 해줄것이기 때문에 영역은 그대로 유지해주되, 이미지만 지워준다 fragment_tip.xml # 해당 이미지 누르면 컨텐츠 리스트들이 뜨도록 # 리사이클러뷰 만들기 -> 레이아웃에 리사이클러뷰 추가 (activity_content_list.xml 에 리사이클러뷰 추가) -> 아이템뷰 생성 (content_rv_item.xml 생성) -> 리사이클러뷰와 연결해줄 어뎁터 생성 (ContentRVAdapter.kt 생성) 그리고 이제 이 해당 이미지를 누르면 이에 해당되는 컨텐츠들이 나오도록 리사이클러뷰를 활용해서 리스트를 만들어주는 작업을 해줄것이다 일단 ContentListActivity와 act.. [Android/Kotlin] 커뮤니티앱(3) - 로그인유무에 따른 엑티비티 전환 ,하단네비게이션바 설정 # 로그인 유무에 따라 엑티비티 다르게 전환 이번에는 먼저 만약에 사용자가 이미 로그인했다면 앱을 실행시켰을때 바로 메인엑티비티로 가게끔 해줄것이다 현재 유저의 uid값을 가져와서 적용해줄것이다. 현재 uid의 값이 존재하면 로그인을 한 사용자일 것이고, uid값이 존재하지 않으면 로그인을 하지 않은 사용자일것이다 일단 먼저 Log값을 찍어서 어떤값이 호출되는지 봐볼것이다 class SplashActivity : AppCompatActivity() { private lateinit var auth : FirebaseAuth override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView.. 이전 1 2 3 4 다음