代码之家  ›  专栏  ›  技术社区  ›  Abhishek kumar

将数据从活动发送到TabLayout片段

  •  1
  • Abhishek kumar  · 技术社区  · 8 年前

    我正在设计一个面临问题的应用程序,

    我有一个 字符串日期; 在里面 主要活动。班 有两个片段。

    边界内日期 &

    我通过TabLayout&ViewPager,当我将日期发送到碎片时,我遇到了问题&必须在两个片段上通过POST请求调用WebServices。

    以下是我在MainActivity中的日期。类,我如何将此日期发送到片段和;调用jsonRequest并将Recyclerview设置为这两个片段,或者如果我将jsonRequest调用为MainActivity本身,那么如何向这两个片段显示。

     date = getIntent().getStringExtra("DATE");
        Log.e("DATE",""+date);
    

    查看页面(&P);表格布局代码:

     private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
        adapter.addFrag(new InBoundDate(),"INBOUND");
        adapter.addFrag(new OutBoundDate(),"OUTBOUND");
        viewPager.setAdapter(adapter);
    
    }
    
    //viewPager adapter ----- inbound & outbound
    public class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();
    
        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }
    
        @Override
        public android.support.v4.app.Fragment getItem(int position) {
            return mFragmentList.get(position);
        }
    
        @Override
        public int getCount() {
            return mFragmentList.size();
        }
    
        public void addFrag(android.support.v4.app.Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }
    
        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
    
    1 回复  |  直到 8 年前
        1
  •  3
  •   Abhishek kumar    8 年前

    我通过互联网搜索得到了这个问题的答案。 在这个问题中,我必须将字符串发送到 主要活动。Java语言

    我们必须创建bundle对象&必须按包发送字符串(任何数据类型)。

    边界内日期 & 外部日期 .

    在setupViewpager()中

     private void setupViewPager(ViewPager viewPager) {
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());
    
        //bundle
        bundle =new Bundle();
        bundle.putString("DATE","2017-10-19");
    
        InBoundDate frag_in = new InBoundDate();
        OutBoundDate frag_out = new OutBoundDate();
    
        frag_in.setArguments(bundle);
        frag_out.setArguments(bundle);
        adapter.addFrag(frag_in,"INBOUND");
        adapter.addFrag(frag_out,"OUTBOUND");
        viewPager.setAdapter(adapter);
    
    }
    

    ViewPager适配器:

      //viewPager adapter ----- inbound & outbound
    public class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();
    
        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }
    
        @Override
        public android.support.v4.app.Fragment getItem(int position) {
            return mFragmentList.get(position);
        }
    
        @Override
        public int getCount() {
            return mFragmentList.size();
        }
    
        public void addFrag(android.support.v4.app.Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }
    
        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }
    

    在你的 通过以下方式获取字符串:

        String dateTxt;
        private Bundle bundle;
    
        //within OncreateView
         bundle = this.getArguments();
            dateTxt = bundle.getString("DATE");
            Log.e("DATE_FRAG_INBOUND",""+dateTxt);