这是我现在正在处理的代码-我们在上课时得到了它,但我并未完全理解它,而我也试图这样做并添加一些功能-这就是我在这里的原因。
MAIN ACTIVITY:
ViewPager viewPager = findViewById(R.id.viewPager);
FragmentAdapter adapter = new FragmentAdapter(getSupportFragmentManager(), MainActivity.this);
viewPager.setAdapter(adapter);
TabLayout tab = findViewById(R.id.tabLayout);
tab.setupWithViewPager(viewPager);
这是我的主要活动类,链接到activity_main.xml。一切都在onCreate方法中。
我将FragmentAdapter与viewPager一起使用,因此采用了它的参数,例如。字符串tabTitle []。
Fragment类使用不同的.xml,layout_page。
FragmentAdapter类如下:
public class FragmentAdapter extends FragmentPagerAdapter {
final int PAGE_COUNT = 3;
private String tabTitle[] = new String[] {"TAB1", "TAB2", "TAB3"};
private Context context;
public FragmentAdapter(FragmentManager fm, Context context) {
super(fm);
this.context = context;
}
@Override
public Fragment getItem(int i) {
return PageFragment.newInstance(i);
}
@Override
public int getCount() {
return PAGE_COUNT;
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return tabTitle[position];
}
}
实际的PageFragment类:
public class PageFragment extends Fragment {
public static final String ARG_PAGE="ARG_PAGE";
private int page;
public static PageFragment newInstance(int page) {
Bundle args = new Bundle();
args.putInt(ARG_PAGE, page);
PageFragment fragment = new PageFragment();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
page = getArguments().getInt(ARG_PAGE);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_page, container, false);
TextView textView = view.findViewById(R.id.textView);
textView.setText("Fragment " + page);
return view;
}
}
我想在片段0(TAB 1)上添加一个按钮,并在EditText上添加一个文本,并使用onclicklistener将数据保存在文本字段中,打开一个新的选项卡(片段)并在那里传输数据。他们都在同一活动上。
我该怎么办?