Android의 구성 요소 간 더 나은 통신을 위한 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
읽어주셔서 감사합니다 좋은 하루 되세요.
Reference
이 문제에 관하여(Android의 구성 요소 간 더 나은 통신을 위한 EventBus), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/akshayranagujjar/eventbus-for-better-communication-between-components-in-android-18jo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)