使用tablayout+viewpager+fragment展示列表,实现在列表上放的搜索功能

需求:在当前展示的页面上实现搜素功能

使用tablayout+viewpager+fragment展示列表,实现在列表上放的搜索功能_第1张图片

分析:获取当前所在页面,将搜索的文字发送到当前所在页面执行接口查询

1.获取当前页面的方法(获取当前页面所在索引)

tab.getSelectedTabPosition

2.根据位置值,判断哪个页面传值

传值方法:使用接口回调

1.定义接口

public interface ToFragmentListener {
    void onTypeClick(String message);
}

2.获取当前所在fragment并赋值给ToFragmentListener

调用onTypeClick传值

3.在对应的fragment方法中拿值(实现接口方法拿值)

 

 

相关代码如下:

actiivty中接口调用     
 int position=tab_layout.getSelectedTabPosition();
                switch (position){
                    case 1:
                        mFragmentListener =(AllFragment)mFragments.get(position);
                        break;
                    case 2:
                        mFragmentListener =(AuditFragment)mFragments.get(position);
                        break;
                    case 3:
                        mFragmentListener =(ClosedFragment)mFragments.get(position);
                        break;
                }

                if(null != mFragmentListener){
                    Bundle bundle=new Bundle();
                    bundle.putString("aa","11");

                    mFragmentListener.onTypeClick(et_search.getText().toString());
                }

activity中定义接口方法

 public interface ToFragmentListener {
        void onTypeClick(String message);
    }

 

fragment中获取数据(实现接口拿数据)
@Override
public void onTypeClick(String message) {
    Log.i("获取的数据",message);
     getMessage=message;
    getData(mPageNo);

}

你可能感兴趣的:(使用tablayout+viewpager+fragment展示列表,实现在列表上放的搜索功能)