본문 바로가기

내일배움캠프

본 캠프 35일 차

개인 과제 2일차

메인액티비티에서 아이템이 눌렸을 때 그 아이템의 상세 페이지로 가기

  • 상품 선택시 아래 상품 상세 페이지로 이동합니다.
  • 상품 상세페이지 이동시 intent로 객체를 전달합니다. (Parcelize 사용)
  • 상품 아이템들 사이에 회색 라인을 추가해서 구분해주세요.
  • 상단 종모양 아이콘을 누르면 Notification을 생성해 주세요. (예시 비디오 참고)
  • 뒤로가기(BACK)버튼 클릭시 종료하시겠습니까? [확인][취소] 다이얼로그를 띄워주세요. (예시 비디오 참고)

위에를 완료한다는 목표를 가지고 열심히 만져 보았다.

 

알림

우선 종모양을 누르면 뜨는 알림은 강의에서 나온 내용을 그대로 넣으니 되었다. 추가적으로 manifest에 

<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />

이 문구도 집어 넣어서 앱이 휴대폰의 알림 기능을 사용할 수 있게했다.

 

세로 구분선

이제 하트 옆에 구분선이 들어가졌다.

아이템 xml 만들 때는 스타일에 디바이더를 넣고 스타일로 만들었는데

<style name="Divider">
    <item name="android:layout_width">match_parent</item>
    <item name="android:layout_height">1dp</item>
    <item name="android:background">?android:attr/listDivider</item>
    <item name="android:color">@color/gray</item>
</style>

 

지금보니 이 디바이더...height가 1dp라 안되었던거 같다. 일단 그래서 좀 더 찾아보니 그냥 view로 만들 수 있다고 한다.

<View
    android:layout_width="2dp"
    android:layout_height="50dp"
    app:layout_constraintStart_toEndOf="@id/iv_heart"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    android:background="@color/gray"
    android:layout_marginStart="10dp"/>

그냥 간단하게 너비와 높이를 세로로 길쭉하게 만들어주니 세로 구분선 완성...생각보다 너무 간단했는데 너무 계속 다른데 만들어서 해야한다라는 생각만 가졌던거 같다.

 

상세페이지로 데이터 넘기기

상품을 누르면 이제 상세페이지로 넘어가야한다. 이번에는 한번 putextra로 모든 글과 이미지를 넘기려고 하나하나 onClick 함수에 title,price 등 모든 내용을 집어 넣고 putExtra(title,position) 이렇게 해서 넘기려고 해보았다.

하지만 받는 쪽에서 받을 수가 없었다...

그래서 저번 프로젝트때 처럼 그냥 각 아이템마다 상세페이지로 이동은 하자 해서 숫자로 값을 넘겨주려고 했지만, 이것조차 되지 않았다. 각 번호를 어떻게 매겨야 하나 했는데, 그냥 position을 집어 넣으니 해결 되었다.

//클릭하면 디테일로 넘기기
adapter.itemClick = object : MyAdapter.ItemClick {
    override fun onClick(view: View, position:Int) {
        val intent = Intent(this@MainActivity,DetailPage::class.java)
        intent.putExtra(Contants.Item_NUMBER,position)
        startActivity(intent)
    }
}

 

이제 내일 parcelize를 사용해서 intent로 객체를 전달 해보고, 1000단위로 콤마, 다이얼로그로 뒤로가기 띄우기를 해보아야겠다.

'내일배움캠프' 카테고리의 다른 글

본 캠프 37일 차  (0) 2024.01.11
본 캠프 36일 차  (1) 2024.01.10
본 캠프 34일 차  (1) 2024.01.08
본 캠프 33일 차(Fragment,액티비티와 프래그먼트 데이터 전달)  (1) 2024.01.05
본 캠프 32일차  (0) 2024.01.04