어댑터 Kotlin에서 알림 배지 카운터를 늘리는 방법

아니 켓 보테

기본 기능을 갖춘 전자 상거래 앱을 구축하려고합니다. 카트에있는 항목 수가 작업 표시 줄에 반영되기를 원합니다. 현재 내 UI는 다음과 같습니다.
사용자 인터페이스

알림을 만들기 위해 이것이 내가 한 일입니다.
cart_layout.xml :

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="55sp"
        android:paddingRight="10sp"
        android:gravity="center">

    <ImageView
        android:id="@+id/cart_img"
        android:layout_width="30sp"
        android:layout_height="30sp"
        android:background="@drawable/shopping"
        android:foreground="?attr/selectableItemBackgroundBorderless" />

    <TextView
        android:id="@+id/item_count"
        android:layout_width="18sp"
        android:textAlignment="center"
        android:layout_height="18sp"
        android:textColor="@android:color/white"
        android:text="0"
        android:textSize="12sp"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:layout_marginStart="21dp"
        android:layout_marginTop="5dp"
        android:background="@drawable/itemcount" />

    </RelativeLayout>

</RelativeLayout>

메뉴 디렉토리 내의 cart_menu.xml 은 다음과 같습니다.

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/select_cart"
        app:showAsAction="always"
        app:actionLayout="@layout/cart_layout"
        android:title="Cart"/>

    <item android:id="@+id/toolbar_search"
        android:title="Search"
        android:icon="@drawable/ic_search_black_24dp"
        app:showAsAction ="always"
        app:actionViewClass="android.widget.SearchView"/>

</menu>

Activity 내의 onCreateOptionsMenu 함수는 다음과 같습니다.

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.cart_menu, menu)
        val count:View = menu!!.findItem(R.id.select_cart).actionView
        val itemText:TextView = count.findViewById(R.id.item_count)
        if(cartList.size == 0){
            itemText.visibility = View.INVISIBLE
        }
        if(cartList.size > 0) {
            itemText.visibility = View.VISIBLE
            itemText.text = cartList.size.toString()
        }
        return true
    }

여기서 cartList 는 장바구니에있는 항목의 MutableList입니다.

내가 원하는 것은 사용자가 "장바구니에 추가" 버튼 클릭 할 때마다이 카트의 카운터를 업데이트하는 것 입니다. 이 버튼의 클릭 리스너는 Adapter 클래스 내에 있습니다. OnClickListener를 내부 onBindViewHolder 내부 ProductAdapter.kt의 다음과 같다 :

holder.addToCart.setOnClickListener {
            holder.count.number = 1.toString()
            Log.d("Product","Clicked ${product.name}, count = ${holder.count.number}")
            val cartItemObj = CartItem(product.name,product.imageUrl, product.size, product.price, holder.count.number)
            val db = CartDatabase(context)
            val result = db.insertData(cartItemObj)
            if(result == (-1).toLong()){
                Log.d("ProductAdapter","Error in Inserting values")
                return@setOnClickListener
            }
            holder.addToCart.visibility = View.INVISIBLE
            holder.count.visibility = View.VISIBLE
            cartList.add(cartItemObj)

            // SOME CODE HERE TO UPDATE THE NUMBER OF ITEMS IN CART


        }

어댑터 내부의 Textview에 액세스 할 수 없기 때문에 어떻게해야할지 모르겠습니다. 전체 프로젝트에 대한 링크 : 여기

베드로

카트 수 정의

 var cartCounter: Int? = 0
 //private lateinit var itemText: TextView
 lateinit var itemText: TextView

그런 다음 onCreateOptionsMenu방법 에서 업데이트

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.cart_menu, menu)
        val count:View = menu!!.findItem(R.id.select_cart).actionView
        itemText:TextView = count.findViewById(R.id.item_count)
        if(cartList.size == 0){
            itemText.visibility = View.INVISIBLE
        }
        if(cartList.size > 0) {
            cartCounter = cartList.size;
            itemText.visibility = View.VISIBLE
            itemText.text = cartCounter.toString()
        }
        return true
    }

마지막으로 사용자가 장바구니에 추가를 클릭하면 다시 업데이트합니다.

holder.addToCart.setOnClickListener {
        holder.count.number = 1.toString()

        val cartItemObj = CartItem(product.name,product.imageUrl, product.size, product.price, holder.count.number)
        val db = CartDatabase(context)
        val result = db.insertData(cartItemObj)
        if(result == (-1).toLong()){
            Log.d("ProductAdapter","Error in Inserting values")
            return@setOnClickListener
        }
        holder.addToCart.visibility = View.INVISIBLE
        holder.count.visibility = View.VISIBLE
        cartList.add(cartItemObj)
        cartCounter = cartCounter + 1;
        // or cartCounter = cartCounter + quantity_of_item;

        itemText.text = cartCounter.toString()


    }

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

어댑터 Kotlin에서 알림 배지 카운터를 늘리는 방법

분류에서Dev

Android-ImageView 오른쪽 위에 알림 카운터를 추가하는 방법

분류에서Dev

android kotlin의 recyclerview 어댑터에서 arraylist를 얻는 방법

분류에서Dev

푸시 알림 인 알림 센터에서 알림을 취소하는 방법

분류에서Dev

모델에서 어댑터 알림

분류에서Dev

조각에서 RecyclerView 어댑터 알림

분류에서Dev

kotlin의 어댑터에서 활동을 여는 방법

분류에서Dev

다른 어댑터에서 작업 등 어댑터를 호출하는 방법

분류에서Dev

"배달 됨"상태로 푸시 알림 수를 늘리는 방법

분류에서Dev

Java 및 C ++에서 카운터를 늘리는 가장 좋은 방법은 무엇입니까?

분류에서Dev

ListView의 어댑터에서 ImageView를 분리하는 방법

분류에서Dev

변환 어댑터로 가져 오는 동안 알림 또는 성공 메시지를 표시하는 방법은 무엇입니까?

분류에서Dev

"어댑터의 내용이 변경되었지만 ListView에서 알림을받지 못함"예외 해결 방법

분류에서Dev

백그라운드에서 FCM 메시지 알림을 제어하는 방법

분류에서Dev

recyclerview 어댑터에서 선택된 cardview의 배경을 변경하는 방법

분류에서Dev

모바일에서 애플리케이션 데이터를 지운 후 발생한 알림을 제거하는 방법

분류에서Dev

알림 센터에서 알림을 닫은 후 알림 배지 업데이트

분류에서Dev

0에서 actionButton 카운터를 중지하는 방법은 무엇입니까?

분류에서Dev

데이터에 삽입 된 새 항목을 recyclerview 어댑터에 알리는 방법

분류에서Dev

중첩 조각에 사용자 지정 어댑터를 구현하는 방법

분류에서Dev

MobileFirst 어댑터에서 시간 지연을 사용하는 방법

분류에서Dev

android 어댑터 클래스에서 카운트 다운 타이머와 함께 캘린더를 사용하는 방법은 무엇입니까?

분류에서Dev

사용자 지정 어댑터를 사용할 때 Android의 ListView에서 데이터를 가져 오는 방법

분류에서Dev

MobileFirst 7.0에서 SOAP 어댑터를 디버그하는 방법

분류에서Dev

RecyclerView 어댑터 (DataBinding)에서 startActivity를 호출하는 방법

분류에서Dev

C 언어에서 래핑 카운터와 큰 음수 값의 차이를 감지하는 방법

분류에서Dev

라디오 버튼에서 카운터를 늘리는 방법이 선택되어 있습니까? 기계적 인조 인간

분류에서Dev

아이콘에 알림 배지를 붙이는 방법은 무엇입니까?

분류에서Dev

Firebase 및 Cordova 앱에서 데이터 / 알림을받는 방법

Related 관련 기사

  1. 1

    어댑터 Kotlin에서 알림 배지 카운터를 늘리는 방법

  2. 2

    Android-ImageView 오른쪽 위에 알림 카운터를 추가하는 방법

  3. 3

    android kotlin의 recyclerview 어댑터에서 arraylist를 얻는 방법

  4. 4

    푸시 알림 인 알림 센터에서 알림을 취소하는 방법

  5. 5

    모델에서 어댑터 알림

  6. 6

    조각에서 RecyclerView 어댑터 알림

  7. 7

    kotlin의 어댑터에서 활동을 여는 방법

  8. 8

    다른 어댑터에서 작업 등 어댑터를 호출하는 방법

  9. 9

    "배달 됨"상태로 푸시 알림 수를 늘리는 방법

  10. 10

    Java 및 C ++에서 카운터를 늘리는 가장 좋은 방법은 무엇입니까?

  11. 11

    ListView의 어댑터에서 ImageView를 분리하는 방법

  12. 12

    변환 어댑터로 가져 오는 동안 알림 또는 성공 메시지를 표시하는 방법은 무엇입니까?

  13. 13

    "어댑터의 내용이 변경되었지만 ListView에서 알림을받지 못함"예외 해결 방법

  14. 14

    백그라운드에서 FCM 메시지 알림을 제어하는 방법

  15. 15

    recyclerview 어댑터에서 선택된 cardview의 배경을 변경하는 방법

  16. 16

    모바일에서 애플리케이션 데이터를 지운 후 발생한 알림을 제거하는 방법

  17. 17

    알림 센터에서 알림을 닫은 후 알림 배지 업데이트

  18. 18

    0에서 actionButton 카운터를 중지하는 방법은 무엇입니까?

  19. 19

    데이터에 삽입 된 새 항목을 recyclerview 어댑터에 알리는 방법

  20. 20

    중첩 조각에 사용자 지정 어댑터를 구현하는 방법

  21. 21

    MobileFirst 어댑터에서 시간 지연을 사용하는 방법

  22. 22

    android 어댑터 클래스에서 카운트 다운 타이머와 함께 캘린더를 사용하는 방법은 무엇입니까?

  23. 23

    사용자 지정 어댑터를 사용할 때 Android의 ListView에서 데이터를 가져 오는 방법

  24. 24

    MobileFirst 7.0에서 SOAP 어댑터를 디버그하는 방법

  25. 25

    RecyclerView 어댑터 (DataBinding)에서 startActivity를 호출하는 방법

  26. 26

    C 언어에서 래핑 카운터와 큰 음수 값의 차이를 감지하는 방법

  27. 27

    라디오 버튼에서 카운터를 늘리는 방법이 선택되어 있습니까? 기계적 인조 인간

  28. 28

    아이콘에 알림 배지를 붙이는 방법은 무엇입니까?

  29. 29

    Firebase 및 Cordova 앱에서 데이터 / 알림을받는 방법

뜨겁다태그

보관