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