Android의 구성 요소 간 더 나은 통신을 위한 EventBus

12597 단어 androidjava
EventBus는 안드로이드와 자바를 위한 넘버원 이벤트 라이브러리입니다. EventBus는 느슨한 결합을 위해 게시자 및 구독자 패턴을 사용하므로 오류 가능성이 적습니다. EventBus는 서로 다른 수준의 활동 또는 서비스 간의 통신과 같이 서로 다른 구성 요소 간의 통신을 단순화합니다. 기존 프로젝트에서 EventBus를 사용하려면 설정이 거의 필요하지 않거나 전혀 필요하지 않습니다.

EventBus는 편리한 주석 기반 API를 제공하여 속도를 높이고 성능을 향상시킵니다. EventBus는 EventBus의 인기를 보여주는 10억 회 이상의 다운로드가 있는 많은 인기 앱에서 사용됩니다.

이 자습서에서는 Android 프로젝트에서 EventBus를 사용하여 시작하는 방법을 살펴봅니다. 코드를 시작하기 전에 우리가 무엇을 만들 것인지 봅시다. EventBus를 더 잘 이해하기 위해 카트에 항목을 추가하고 항목의 총 수를 표시할 수 있는 앱을 만들 것입니다. 앱이 어떻게 작동하는지 아래에서 확인하세요.



시작하자.

Android Studio에서 EventBus 종속성 추가
먼저 프로젝트에 EventBus 종속성을 추가해야 합니다. build.gradle을 열고 종속성을 추가합니다.

implementation 'org.greenrobot:eventbus:3.2.0'

동기화 버튼을 누르고 다음 단계로 이동합니다.

EventBus용 POJO 클래스 만들기



다음 단계는 EevntBus Subscribe 메소드를 전달하고 나중에 사용할 Java 객체 클래스를 만드는 것입니다.

예제 앱의 경우 카트 항목에 대한 문자열 필드가 있는 CartEvent.java라는 이름의 클래스를 만듭니다.

더 나은 이해를 위해 아래 코드를 참조하십시오.

public class CartEvent {
    public String cartItem;

    public CartEvent(String cartItem) {
        this.cartItem = cartItem;
    }
}

다음 단계로 이동합니다.

참조: Android Libraries for Beginners

앱용 UI 만들기



첫 번째 활동에는 장바구니 항목의 총 개수를 표시하는 텍스트 보기가 있습니다.

그리고 카트에 항목을 추가하기 위해 두 번째 활동을 여는 버튼입니다.

이해하려면 아래 코드를 참조하십시오.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Cart Item: 0"
        android:id="@+id/cartTextView"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="50sp"
        android:textAppearance="@style/TextAppearance.AppCompat.Title"
        />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Add Items"
        android:id="@+id/button"
        android:onClick="open"
        app:layout_constraintTop_toBottomOf="@id/cartTextView"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        />
</androidx.constraintlayout.widget.ConstraintLayout>

이제 항목 목록을 표시하는 두 번째 활동을 만들고 버튼 클릭에 대한 메서드를 추가합니다.

간단한 장바구니 상품을 만들었습니다. 3개의 항목을 추가하지만 실제 애플리케이션에서는 recyclerview 또는 다른 보기를 사용하여 항목 목록을 만들어야 합니다.

다음은 두 번째 활동 XML 코드입니다.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="15sp"
    tools:context=".MainActivity2">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/item1"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        android:text="Item 1"
        android:layout_marginTop="25sp"
        android:textAppearance="@style/TextAppearance.AppCompat.Title"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/addItem1"
        android:text="Add to cart"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="@id/item1"
        app:layout_constraintBottom_toBottomOf="@id/item1"
        android:onClick="addItemToCart"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/item2"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/item1"
        android:text="Item 2"
        android:layout_marginTop="25sp"
        android:textAppearance="@style/TextAppearance.AppCompat.Title"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/addItem2"
        android:text="Add to cart"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="@id/item2"
        app:layout_constraintBottom_toBottomOf="@id/item2"
        android:onClick="addItemToCart"
        />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/item3"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/item2"
        android:text="Item 3"
        android:layout_marginTop="25sp"
        android:textAppearance="@style/TextAppearance.AppCompat.Title"
        />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/addItem3"
        android:text="Add to cart"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="@id/item3"
        app:layout_constraintBottom_toBottomOf="@id/item3"
        android:onClick="addItemToCart"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

위의 코드에서 onClick 속성을 추가하고 addItemToCart 메소드 이름을 전달했습니다.

그리고 두 번째 활동 java에서 적절한 방법을 만들었습니다.

public void addItemToCart(View view) {
}

이제 프로젝트에서 EventBus를 구현하십시오.

구독자를 만들고 구독자 메서드에서 목록에 항목을 추가해 보겠습니다.

이해하려면 아래를 참조하십시오.

카트를 업데이트하기 위해 EventBus의 구독 방법 만들기



첫 번째 활동에서 카트 수를 표시하므로 구독자 메서드에서 카트 수를 업데이트해야 합니다. Java 파일을 열고 onCartItemAdd 메서드를 만들고 매개 변수에서 CartEvent 개체를 가져옵니다.

자세한 내용을 보려면 여기로 이동하십시오: EventBus Library for Android

읽어주셔서 감사합니다 좋은 하루 되세요.

좋은 웹페이지 즐겨찾기