こんにちは、私は同じことをやって、どのように動作するか、私はあなたにアイデアを与えます。
私はすでに答えていますが、私はexperianceを共有したいと思います。この方法は完璧です。すべての
まず今
public interface TaskListener1 {
public void onResultAvailable(String result);
}
public interface TaskListener2 {
public void onResultAvailable(String result);
}
は、あなたの活動に来て、あなただけのあなたを与えるfragment.I'mにデータを送信する場所をこのように呼んで、自分の活動に二つのインターフェースを作成example.Youあなたが望むようにそれを作ることができます。このような
class TestAsyncTask extends AsyncTask<Void, String, Void> {
String response_result;
public TaskListener1 taskListener1 = null;
public TaskListener2 taskListener2 = null;
public TestAsyncTask(TaskListener1 taskListener1, TaskListener2 taskListener2) {
this.taskListener1 = taskListener1;
this.taskListener2 = taskListener2;
}
@Override
protected Void doInBackground(Void... unused) {
response_result = "Test data what you want to send";
return null;
}
@Override
protected void onPostExecute(Void unused) {
taskListener1.onResultAvailable(response_result);
taskListener2.onResultAvailable(response_result);
}
}
コール、
new TestAsyncTask(new Fragment1), new Fragment2)).execute();
そして、どのようにフラグメント内のデータを取得するには、
まずフラグメント、
第2のフラグメント、
public class Fragment2 extends Fragment implements YourActivity.TaskListener2 {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
view = inflater.inflate(R.layout.fragment2, container, false);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
public void onResultAvailable(String result) {
Logs.d("TAG", "Fragment result2:" + result);
}
}
これは誰かを助けることをお祈りしております。
インテントを使用して、同時に2つのフラグメントにデータを送信することはできません。データは、その時点で呼び出されたフラグメント(あなたの場合はToDoModule)にのみ送られます。同じデータを複数のフラグメントにアクセスしたい場合は、それを 'SharedPreferences'に保存し、必要に応じてフラグメントからアクセスすることができます。 –
しかし、データは変更されますか? SharedPreferencesでこれを行うことはできますか? –
'SharedPreferences'にデータを保存すると、更新しない限り変更されません。 –