12
String
データをfragment
からactivity
に送信します。onAttachフラグメントからアクティビティへのコールバック
onAttach
コールバックを使用して、アンドロイドデベロッパーでフラグメントとアクティビティの通信に関する記事を読んでいます。
誰でもデータをフラグメントからアクティビティに送信する方法を明確に説明できますか?
String
データをfragment
からactivity
に送信します。onAttachフラグメントからアクティビティへのコールバック
onAttach
コールバックを使用して、アンドロイドデベロッパーでフラグメントとアクティビティの通信に関する記事を読んでいます。
誰でもデータをフラグメントからアクティビティに送信する方法を明確に説明できますか?
このようなことを行う必要があります。 OnClickListener
を実装してあなたのフラグメントで
OnViewSelected _mClickListener;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
_mClickListener = (OnViewSelected) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement onViewSelected");
}
}
とあなたのonClick()
方法でこれを実行します。:
public interface OnViewSelected {
public void onViewSelected(int viewId);
}
とあなたのonAttach
には、次の操作を行います。まず、例えば、あなたの活動にcomunicateするために使用するインターフェイスを作成
@Override
public void onClick(View v) {
_mClickListener.onViewSelected(456);
}
アクティビティの後で、作成したインターフェイスをあなたのフラグメントに実装する必要があります。実装されていないメソッドを追加するよう依頼し、あなたのアクティビティでは次のような機能を持ちます:
@Override
public void onViewSelected(int data) {
Log.d("","data : "+data); // this value will be 456.
}
それだけです。 :)
nice :)あなたが言うようにAndroid Frameworkが生成されます。そして、私は今それを明確に理解することができます – hqt
なぜインターフェイスを作成するのですか?コンテキストctx(グローバル)を作成し、ctx =(YourActivity)アクティビティによってonAttach内で渡されたアクティビティをキャストしてから、ctx.onViewSelected(data)を使用して、アクティビティでonViewSelectedを作成しました。 – tony9099
これはこれまでのところ最良の方法だと私の意見では、これを1つの 'Fragment'やたくさん使っても問題ありません。あなたの実装もうまくいきますが、私はもっとインターフェイスが好きです:) – hardartcore