Androidにおけるコンポーネント間通信の改善


EventBusは、AndroidとJavaのためのナンバーワンのイベントライブラリです.EventBusは、エラーの可能性が少ないことを意味する緩やかな結合のための発行者と加入者パターンを使用します.EventBusは、異なるレベルの活動またはサービスさえのコミュニケーションのために異なる構成要素間のコミュニケーションを単純化します.既存のプロジェクトではEventBusを使用するセットアップは非常に少なくなりません.
EventBusは、高速かつパフォーマンスを向上させる便利な注釈ベースのAPIを提供します.EventBusは、多くの人気のアプリ、どのようにEventBus人気が表示されます10億プラスのダウンロードを持っているアプリによって使用されます.
このチュートリアルでは、AndroidプロジェクトでEventBusを使用してどのように始めることができるかを確認します.コードでジャンプする前に、我々が何をするつもりであるかについて見ましょう.より良いEventBusを理解するために我々は、カートにアイテムを追加し、アイテムの合計数を表示できるようにするアプリケーションを作成します.我々のアプリがどのように動作するかを以下を参照してください.

始めましょう.
AndroidスタジオでEventBus依存性を追加
まず、プロジェクトにEventBus依存関係を追加する必要があります.ビルドを開きます.Gradleと依存関係を追加します.
implementation 'org.greenrobot:eventbus:3.2.0'
同期ボタンを押すと次のステップに移動します.

EventBusのためにPOJOクラスを作ります


次のステップは、JavaオブジェクトクラスをEevntBus Subscribeメソッドで渡し、後で使用するようにすることです.
我々の例のアプリについては、我々はCarteventの名前を持つクラスを作成します.カート項目の文字列フィールドを持つJava.
より良い理解のために以下のコードを見てください.
public class CartEvent {
    public String cartItem;

    public CartEvent(String cartItem) {
        this.cartItem = cartItem;
    }
}
次のステップに移動します.
Android Libraries for Beginners .

アプリのUIを確認する


最初の活動では、カートアイテムの合計数を表示するテキストビューを持っています.
そして、ボタンをカートにアイテムを追加する2番目の活動を開きます.
以下のコードを理解してください.
<?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>
今すぐ項目リストを表示し、ボタンをクリックするためのメソッドを追加する2番目の活動を行います.
シンプルなカートアイテムを作りました.我々は、3つのアイテムが追加されますが、現実世界のアプリケーションでは、アイテムのリストを作成するには、RefererViewや他のビューを使用する必要があります.
第2の活動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属性を追加し、additemToKartメソッド名を渡します.
そして、第2の活動Javaで適切な方法を作りました.
public void addItemToCart(View view) {
}
プロジェクトでEventBusを実装します.
加入者を作りましょう、そして、加入者メソッドで、我々はアイテムをリストに加えます.
理解するために以下を参照してください.

更新のためのEventBusの購読方法


最初のアクティビティでカート数を表示するので、加入者メソッドでカートカウントを更新する必要があります.Javaファイルを開き、OnCirtitemAddメソッドを作成し、パラメーターで、Carteventオブジェクトを取得します.
こちらをご覧ください.
読書ありがとうございます.