您当前的位置: 首页 > 

ZhangJiQun&MXP

暂无认证

  • 1浏览

    0关注

    1187博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

通过Interface:fragment向activity传值

ZhangJiQun&MXP 发布时间:2019-05-21 17:11:06 ,浏览量:1

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);
    }
    
}
关注
打赏
1665659684
查看更多评论
立即登录/注册

微信扫码登录

0.0433s