15

からにStringデータを送信したい。fragmentactivity

コールバックを使用した、Androidデベロッパーでのフラグメントとアクティビティ間の通信に関する記事を読みましたonAttach

フラグメントからアクティビティにデータを送信する方法を誰かが明確に説明できますか?

4

1 に答える 1

37

あなたはこのようなことをすべきです。まず、アクティビティとの通信に使用するインターフェイスを作成します。例:

public interface OnViewSelected {
public void onViewSelected(int viewId);
}

そしてあなたの中onAttachでこれを行う:

OnViewSelected _mClickListener;
@Override
public void onAttach(Context context) {
    super.onAttach(context);
    try {
        _mClickListener = (OnViewSelected) context;
    } catch (ClassCastException e) {
        throw new ClassCastException(context.toString() + " must implement onViewSelected");
    }
}

Fragment実装OnClickListeneronClick()メソッドで、これを実行します。

@Override
public void onClick(View v) {
    _mClickListener.onViewSelected(456);
}

その後、アクティビティでフラグメントで作成したインターフェイスを実装する必要があり、実装されていないメソッドを追加するように求められます。アクティビティでは、次のような機能があります。

@Override
public void onViewSelected(int data) {
    Log.d("","data : "+data); // this value will be 456.
}

それで全部です。:)

于 2013-01-08T11:35:14.353 に答える