您现在的位置是:主页 > news > 潍坊设计网站建设/百度手机卫士
潍坊设计网站建设/百度手机卫士
admin2025/5/14 16:35:26【news】
简介潍坊设计网站建设,百度手机卫士,自己 做网站,东莞seo推广Android 定义接口通知之Fragment中刷新改变宿主Activity UI 在一个搜索功能中往往会出现这样一个功能:顶部一个搜索功能,下面是一个TabLayout与ViewPager,VerPager承载着两个Fragment,随着TabLayout与ViewPager的滑动而传递信息告诉相应的Fra…
潍坊设计网站建设,百度手机卫士,自己 做网站,东莞seo推广Android 定义接口通知之Fragment中刷新改变宿主Activity UI 在一个搜索功能中往往会出现这样一个功能:顶部一个搜索功能,下面是一个TabLayout与ViewPager,VerPager承载着两个Fragment,随着TabLayout与ViewPager的滑动而传递信息告诉相应的Fra…
Android 定义接口通知之Fragment中刷新改变宿主Activity UI
在一个搜索功能中往往会出现这样一个功能:顶部一个搜索功能,下面是一个TabLayout与ViewPager,VerPager承载着两个Fragment,随着TabLayout与ViewPager的滑动而传递信息告诉相应的Fragment要做的事情,点击顶部的搜索来刷新下面的两个Fragment的数据,并且还要传递搜索的内容和TabLayout的位置。下面我们来看看我的实现方式,若大家有更好的方法,希望可以不吝赐教:
1.activity中调用接口(两个Fragment,这里我写了两个回调接口,看情况使用):
if (linstenr!=null){//回调数据给Fragmentlinstenr.listener(mPosition,et_search.getText().toString());}if (linstenr_dynamic!=null){//回调数据给Fragmentlinstenr_dynamic.listener(mPosition,et_search.getText().toString());}
在activity中实现接口:
ListenerDynamic linstenr_dynamic;public void setLinstenr_dynamic(ListenerDynamic linstenr_dynamic) {this.linstenr_dynamic = linstenr_dynamic;}Listener linstenr;public void setLinstenr(Listener linstenr) {this.linstenr = linstenr;}
2.在Fragment中实现自己写的接口和一些方法:
public class FragmentA extends AbsBaseFragmentimplements ListenerDynamic{
//场面过于刺激,就不做展示了......
}
实现接口类后的回调方法及传递来的参数:
@Overridepublic void listener(int position, String content) {String mContent = content;String userId = PreferenceUtil.getInstance().getUserInfo().getUserId();if(position == 0){//动态ToastUtil.show(getActivity(), position + "----"+content);page = 1;getFindUserData(content,userId,page);}else if(position == 1){//用户}}
给activity设置监听:
@Overridepublic void onAttach(Activity activity) {super.onAttach(activity);SearchActivity mainActivity = (SearchActivity) activity;mainActivity.setLinstenr_dynamic(this);}
3.自定义接口(另一个与之相同):
/*** Description:用于activity与Fragment的数据交互* 如:activity中的按钮点击之后刷新Fragment中的数据** @author SGF* date:*/
public interface ListenerDynamic {void listener(int position, String content);
}
其它的方法一定有很多,时间原因只试了这一个方法,BroadcastReceiver、EventBus、sharedpreferences等应该都有自己的实现方法。