2019.5.21,在fzsd
上代码:标红的是接口传值和回调
activity:public class Result_look_TabLayoutActivity extends AppCompatActivity { TextView inventoryAmount; Button button_backl; private TabLayout mTabLayout; private ViewPager mViewPager; private LayoutInflater mInflater; private List mTitleList = new ArrayList();//页卡标题集合 private View view1, view2, view3, view4, view5;//页卡视图 private List mViewList = new ArrayList();//页卡视图集合 private List listTitles; private List fragments; private List listTextViews; private List data_news; @RequiresApi(api = Build.VERSION_CODES.GINGERBREAD) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_result_look_tablayout); mViewPager = (ViewPager) findViewById(R.id.vp_view); mTabLayout = (TabLayout) findViewById(R.id.tabs); button_backl = findViewById(R.id.bt_back); inventoryAmount = findViewById(R.id.inventory_amount); initData(); button_backl.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); inventoryAmount.setText(data_news.size() + ""); } private void initData() { data_news = DBManager.getInstance(Result_look_TabLayoutActivity.this).queryUserList(); listTitles = new ArrayList(); fragments = new ArrayList(); listTextViews = new ArrayList(); listTitles.add("全部数据"); listTitles.add("已盘"); listTitles.add("未盘"); // for (int i = 0; i < listTitles.size(); i++) { OneFragment oneFragment = OneFragment.newInstance(listTitles.get(0)); TwoFragment twoFragment = TwoFragment.newInstance(listTitles.get(1)); ThreeFragment threeFragment = ThreeFragment.newInstance(listTitles.get(2)); oneFragment.setOnReeshAmount(new OneFragment.OnReeshAmount() { //activity调用,接口回调 @Override public void onClick(int title) { inventoryAmount.setText(title + ""); } }); twoFragment.setOnReeshAmount(new OneFragment.OnReeshAmount() { @Override public void onClick(int title) { inventoryAmount.setText(title + ""); } }); threeFragment.setOnReeshAmount(new OneFragment.OnReeshAmount() { @Override public void onClick(int title) { inventoryAmount.setText(title + ""); } }); fragments.add(oneFragment); fragments.add(twoFragment); fragments.add(threeFragment); // } //mTabLayout.setTabMode(TabLayout.SCROLL_AXIS_HORIZONTAL);//设置tab模式,当前为系统默认模式 for (int i = 0; i < listTitles.size(); i++) { mTabLayout.addTab(mTabLayout.newTab().setText(listTitles.get(i)));//添加tab选项 } FragmentPagerAdapter mAdapter = new FragmentPagerAdapter(getSupportFragmentManager()) { @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } //ViewPager与TabLayout绑定后,这里获取到PageTitle就是Tab的Text @Override public CharSequence getPageTitle(int position) { return listTitles.get(position); } }; mViewPager.setAdapter(mAdapter); mTabLayout.setupWithViewPager(mViewPager);//将TabLayout和ViewPager关联起来。 mTabLayout.setTabsFromPagerAdapter(mAdapter);//给Tabs设置适配器 } }Fragment:
public class OneFragment extends Fragment { private View view;//定义view用来设置fragment的layout public RecyclerView mCollectRecyclerView;//定义RecyclerView //定义以goodsentity实体类为对象的数据集合 private List goodsEntityList = new ArrayList(); //自定义recyclerveiw的适配器 private OneAdapter mCollectRecyclerAdapter; //獲取shuju private List data_news; @Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { //获取fragment的layout view = inflater.inflate(R.layout.fragment_one, container, false); //初始化数据 initData(); //对recycleview进行配置 initRecyclerView(); return view; } @Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); } @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { goodsEntityList = DBManager.getInstance(getActivity()).queryUserList(); //TODO now it's visible to user //查询数据更新下面的总数目 接口回调 if (onReeshAmount != null) { //触发 onReeshAmount.onClick(goodsEntityList.size()); } } else { } } /** * fragment静态传值 */ public static OneFragment newInstance(String str) { OneFragment fragment = new OneFragment(); // Bundle bundle = new Bundle(); // bundle.putString(KEY,str); // fragment.setArguments(bundle); return fragment; } /** * TODO 模拟数据 */ private void initData() { goodsEntityList = DBManager.getInstance(getActivity()).queryUserList(); } /** * TODO 对recycleview进行配置 */ private void initRecyclerView() { //获取RecyclerView mCollectRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view); //创建adapter mCollectRecyclerAdapter = new OneAdapter(getActivity(), goodsEntityList); //给RecyclerView设置adapter mCollectRecyclerView.setAdapter(mCollectRecyclerAdapter); //设置layoutManager,可以设置显示效果,是线性布局、grid布局,还是瀑布流布局 //参数是:上下文、列表方向(横向还是纵向)、是否倒叙 mCollectRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false)); //设置item的分割线 mCollectRecyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL)); //RecyclerView中没有item的监听事件,需要自己在适配器中写一个监听事件的接口。参数根据自定义 mCollectRecyclerAdapter.setOnItemClickListener(new OneAdapter.OnItemClickListener() { @Override public void OnItemClick(View view, data_new data) { //此处进行监听事件的业务处理 Toast.makeText(getActivity(), "我是item", Toast.LENGTH_SHORT).show(); } }); } //定义变量 private OnReeshAmount onReeshAmount; //定义触发方法 public void setOnReeshAmount(OnReeshAmount onReeshAmount) { this.onReeshAmount = onReeshAmount; } /** * 当title被点击时,将title传递出去 */ //定义接口 public interface OnReeshAmount { void onClick(int title); } }