FragmentAのTextViewを押すと、FragmentBにテキストを設定できるようにインターフェイスを作成しました。何かが機能していないと私はこれを把握することはできません。別のフラグメントと通信するためのインターフェイスを作成する
私はコミュニケータと呼ばれるインターフェースを作成しました:私はTextViewの上CommuncatorとOnClickListenerというインターフェイス上に基準を設定しているFragmentAで
public interface Communicator {
void respond(String data);
}
を:
Communicator comm;
homeTextView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
comm.respond("Trying to set text on FragmentB from here");
}
});
フラグメントB、テキストを変更する私の方法を設定してください:
MainActivityに私はインターフェイスを実装しましたは最後に..私はここだと思う私は間違って何かやっているところです。
@Override
public void respond(String data) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.container_main, new FragmentB(), "fragment2").addToBackStack(null).commit();
FragmentB fragmentB= (FragmentB) getSupportFragmentManager().findFragmentByTag("fragment2");
if (fragmentB != null) {
fragmentB.setText(data);
}
}
フラグメント2つの負荷をが、テキストは空です。
である。私は問題がMainActivityの応答関数にあると思います。あなたが 'commit()'を呼び出すとUIスレッドで実行されず、完了するまでに時間がかかり、その後にnullであると宣言するfragmentBが発生します。 – TruongHieu