开发中用到在fragment中搜索框输入关键字,下面是个viewpager,viewpager有两个fragment,滑到哪个fragment就在哪个fragment中进行搜索。
大fragment:
private int fragmentFlag=0;//定义一个标记知道是哪一页
//在监听器做到如下事情,翻到哪一页记下页数 public class MyPageChangeListener implements ViewPager.OnPageChangeListener { @Override public void onPageSelected(int arg0) { Animation animation = null; switch (arg0) { case 0: fragmentFlag=0; break; case 1: fragmentFlag=1; break; } } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageScrollStateChanged(int arg0) { } }
在viewpager中的fragment做的操作://点击搜索框
@Override public void onClick(View v) { switch (v.getId()) { case R.id.supplier_search://查找 String search=(editSearch.getText().toString().trim()+"").replace("null",""); if(fragmentFlag==0){ SPSupplierAllFragment allFragment=(SPSupplierAllFragment)getActivity().getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.mViewPager + ":0"); allFragment.searchData(search); }else if(fragmentFlag==1){ SPSupplierDistanceFragment diatanceFragment=(SPSupplierDistanceFragment)getActivity().getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.mViewPager + ":1"); diatanceFragment.searchData(search); } break; } }
/** * 用于搜索的方法 * @param search */ public void searchData(String search){ this.search=search;//传来的search refreshData();//本例子中的数据更新 }如此,就可以进行数据的更新了。