我想从fragment
向activity
发送String
数据。
我已经阅读了关于在Android开发者中fragment和activity之间通信的文章,使用onAttach
回调函数。
有人能清楚地解释一下如何从fragment向activity发送数据吗?
我想从fragment
向activity
发送String
数据。
我已经阅读了关于在Android开发者中fragment和activity之间通信的文章,使用onAttach
回调函数。
有人能清楚地解释一下如何从fragment向activity发送数据吗?
你应该像这样做。首先创建一个接口,用于与你的活动进行通信,例如:
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实现OnClickListener
,并且在你的onClick()
方法中做如下操作:
在你的 Fragment 中实现 OnClickListener
接口,并在 onClick()
方法中执行以下操作:
@Override
public void onClick(View v) {
_mClickListener.onViewSelected(456);
}
接下来,在您的Activity中,您需要实现在Fragment中创建的接口,并且它会要求您添加未实现的方法。在您的Activity中,您将有以下函数:
@Override
public void onViewSelected(int data) {
Log.d("","data : "+data); // this value will be 456.
}
就这些了。:)
Fragment
中使用还是在很多个中使用。你的实现也可以工作,但我更喜欢接口 :) - hardartcorepublic void onAttach(Activity activity)
已正式弃用。 - gunesspublic void onAttach(Context context)
。 - hardartcore