将数据从 Activity 发送到 TabLayout 片段
Send Data from Activity to TabLayout fragments
我在设计一个应用程序时遇到了问题,
我在 MainActivity.class 中有一个 字符串日期; 并且有两个片段。
入站日期 & 出站日期
我是通过 TabLayout 和 ViewPager 设计的,当我向片段发送日期时遇到问题并且必须通过 POST 对两个片段的请求调用 WebServices。
下面是我在 MainActivity.class 中的日期,我如何将这个日期发送到两个片段并调用 jsonRequest 并将 Recyclerview 设置为两个片段或者如果我将 jsonRequest 调用到 MainActivity 本身那么我怎么能显示给两个片段。
date = getIntent().getStringExtra("DATE");
Log.e("DATE",""+date);
ViewPager 和 TabLayout 代码:
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);
}
}
我通过互联网搜索得到了这个问题的答案。
在这个问题中,我必须将字符串发送到 MainActivity.java 到存在于相同 Activity.
上的片段
注意:我们必须创建捆绑对象并且必须通过捆绑发送字符串(任何数据类型)。
我有两个片段 InBoundDate & OutBoundDate.
在MainActivity.java在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);
}
}
在您的 Fragments 中通过这种方式获取字符串 :
String dateTxt;
private Bundle bundle;
//within OncreateView
bundle = this.getArguments();
dateTxt = bundle.getString("DATE");
Log.e("DATE_FRAG_INBOUND",""+dateTxt);
我在设计一个应用程序时遇到了问题,
我在 MainActivity.class 中有一个 字符串日期; 并且有两个片段。
入站日期 & 出站日期
我是通过 TabLayout 和 ViewPager 设计的,当我向片段发送日期时遇到问题并且必须通过 POST 对两个片段的请求调用 WebServices。
下面是我在 MainActivity.class 中的日期,我如何将这个日期发送到两个片段并调用 jsonRequest 并将 Recyclerview 设置为两个片段或者如果我将 jsonRequest 调用到 MainActivity 本身那么我怎么能显示给两个片段。
date = getIntent().getStringExtra("DATE");
Log.e("DATE",""+date);
ViewPager 和 TabLayout 代码:
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);
}
}
我通过互联网搜索得到了这个问题的答案。 在这个问题中,我必须将字符串发送到 MainActivity.java 到存在于相同 Activity.
上的片段注意:我们必须创建捆绑对象并且必须通过捆绑发送字符串(任何数据类型)。
我有两个片段 InBoundDate & OutBoundDate.
在MainActivity.java在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);
}
}
在您的 Fragments 中通过这种方式获取字符串 :
String dateTxt;
private Bundle bundle;
//within OncreateView
bundle = this.getArguments();
dateTxt = bundle.getString("DATE");
Log.e("DATE_FRAG_INBOUND",""+dateTxt);