2016-05-11 8 views
0

私は本当に自分を隅に追い込んだ。彼らは私のデータにアクセスできる唯一の方法は私のビジュアライザーのビューアクティビティからですビュークラスです。どのように私はこれについて行く必要があります上の任意のアイデアは強く感謝!乾杯。ビューアクティビティからメインアクティビティにデータを送信する方法は?共有プリファレンスやインテントの代替ですか?

+0

私は少なくとも200のgoogle検索を行っています。 – Jared

+0

誰かがそれが可能ではないことを私に教えるために時間をとることができたら。 – Jared

+0

EventBusはあなたの問題を解決しましたか? :) – Vucko

答えて

0

すでにSharedPrefsとIntentsを除外している場合は、非常に優れたサードパーティライブラリが私の頭に浮かびます:Eventbusこのようなことは素晴らしいことですが、使い方は簡単です。

ドキュメントをチェックするだけで、このライブラリを使用すると楽しいことができます。それを始める方法に関するチュートリアルがあり、それは非常に簡単です。 私は大きな喜びでそれを使用しました

EDIT:このクラスは、任意の型のように多くのフィールドを持つことができ

public class LoginErrorEvent { 
    private int errorCode; 

    public LoginErrorEvent(int errorCode) { 
     this.errorCode = errorCode; 
    } 
} 

:(例を追加)

まず(それは非常に単純なもの)のようなあなたのカスタムクラスを作りますあなたは好きですが、あなたがintを要求して以来、intであるフィールドは1つしかないとしましょう。

今、あなたはあなたがデータを送りたい場所で何をしたい:もちろん

eventBus.post(new LoginErrorEvent(errorCode)); 

、あなたは/チュートリアルに従うとアクティビティのonCreateにEventBusを初期化する必要がありますフラグメント(EventBus.getDefault();

あなたが今やらなければならないことは、あなたがこのようにメソッドを書くことで、それをキャッチしたい場所にそのイベントをリッスンすることです:

@Subscribe 
public void onLoginErrorEvent(LoginErrorEvent loginErrorEvent){ 
    //your logic here, do whatever you wish with your int 
    int errorCode = loginErrorEvent.getErrorCode(); 
    ........ 
    ..... 
} 

メソッドの名前はである必要はなく、fooのようなものでもかまいませんが、このような意味のある名前をつけるのは良い慣習です。このメソッドの唯一の重要な点は、キャッチしようとしているEventの型のパラメータがあることです。

+0

甘い私はそれを与えるだろう。ありがとうございました。 – Jared

+0

あなたはそれを後悔しません。私はEventBusを使用した後、それがどれほど優れているかを主張しています。あなたの特定の仕事に役立つ場合は、その答えを受け入れることを検討してください。 – Vucko

+0

整数変数をJavaクラスからどのように転送できるか考えてください。私がちょうどコードする方法を学んでいるので、私が理解するのはちょっと難しいです。ありがとうございました。 – Jared

関連する問題