2

大学のアプリケーションを実装する必要があり、専門家からのアドバイスが必要です :) . を使用するアクティビティがありPageIndicator、すべてのページがフラグメントです。現在、最大 1 ページが表示されています。すべてのフラグメントには、Bluetooth 経由でアプリケーションから読み取られた値を含む 4 つのウィジェットがあります (Bluetooth 経由でアプリケーションにデータを送信するシリアル デバイスがあります)。私のアクティビティには、ループ内でシリアル デバイスと通信する独立したスレッドが必要だと思います。 . しかし、このスレッドが値を読み取るとき、現在のフラグメント、特に指定されたウィジェットにデータを送信するにはどうすればよいでしょうか? 現在のウィジェットは、読み取った最新のデータを表示する必要があります。言い換えれば、アクティビティのスレッドが現在のフラグメントにデータを送信する方法を知る必要があります。私の英語でごめんなさい

4

1 に答える 1

5

フラグメントの作成中に、それらを ArrayList に記録し、Fragment を拡張するカスタム フラグメント クラスを作成します。

static public ArrayList<CustomFragment> fragmentsList = new ArrayList<CustomFragment>();

// create new fragment
// Example:
// CustomFragment myFragment = new FragmentOne();

fragmentsList.add(newlyCreatedFragment);

フラグメント内で、更新を受け取るメソッドを作成します。たとえば、

あなたのフラグメントクラス:

public class CustomFragment extends Fragment {

    public void receiveUpdate(String update) {
      // Do something
    }
}

次に、「extends Fragment」の代わりに「extends CustomFragment」を使用します

それから他のクラスから

CustomFragment theFragment = SomeClass.fragmentsList.get(0); // where 0 is the fragment's index
theFragment.receiveUpdate("the update");
于 2012-09-02T18:17:14.527 に答える