アクティビティからフラグメントにデータを送信しようとしています。 私はフラグメントからアクティビティにデータを送信しません。アクティビティでインターフェイスリスナーオブジェクトをインスタンス化する以外に、すべて正しく設定されています。インターフェイスリスナーを使用して、アクティビティからフラグメントにデータを送信する
public class Activity extends AppCompatActivity {
private FragmentInterface fragmentInterfaceListener;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// This line below is actually in a button onClick()
fragmentInterfaceListener.sendDataMethod(dataToSend);
}
public interface FragmentInterface {
void sendDataMethod(SampleData sampleData);
}
}
はその後の断片では、私が持っている:私はボタンonClick()
にログ行を入れると、ボタンがクリックされたとき
public static class CustomFragment extends Fragment implements Activity.FragmentInterface {
@Override
public void sendDataMethod(final SampleData sampleData) {
}
}
、ログ行が表示されます。いいえ、私はフラグメントバンドルにsampleDataを入れるつもりはありません。はい、私はインターフェイスを介してデータを送信する必要があります。では、アクティビティでfragmentInterfaceListenerオブジェクトを正しくインスタンス化するにはどうすればよいですか?アクティビティやCustomFragmentに他のものがありませんか?
を参照することができフラグメントでメソッドを呼び出すか、バンドル
でsetArgumentsとしてを渡すことができます。あなたのコードを置くのは怠惰ではありません – zihadrizkyef
'FragmentInterface'インターフェースをあなたのアクティビティに保つのではなく、代わりにあなたのアクティビティに' CustomFragment'フラグメントを残してください。そして、 'CustomFragment'フラグメントでパブリックメソッドを宣言して、あなたのアクティビティがこれらのメソッドを簡単に使用できるようにします。 –