android - 如何通过单击按钮在片段之间切换并相互传输数据?
问题描述
这是我现在正在处理的代码——我们在课堂上得到它,我没有完全理解它,我正在尝试这样做并添加一些特性——这就是我在这里的原因。
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 一起使用,从而获取它的参数,例如。字符串选项卡标题 []。
片段类使用不同的 .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;
}
}
我想在 Fragment 0(TAB 1)和 EditText 上添加一个按钮,并使用 onclicklistener 将数据保存在文本字段中,打开一个新选项卡(片段)并将数据传输到那里。他们都在同一个活动。
我该怎么办?
解决方案
推荐阅读
- python - 在 Fastapi 中使用 SQLalchemy 进行多对多
- python - django 信号不适用于字符串变量
- amazon-web-services - 调用 CreateMultipartUpload 操作时发生错误 (AccessDenied):访问被拒绝
- c# - 即使路由存在,也没有找到该请求的候选人
- sql-server - 如何在 SQL Server 中获取两个值的最大值?
- google-cloud-platform - 如何确定您的 Google Cloud Platform 应用程序是否受 Google 高级保护计划支持?
- clojure - 如何在clojure中查看类路径?
- python - 一种在 pydantic 中设置字段验证属性的方法
- python-3.x - AWS lambda:PortScannerError:“路径中未找到 nmap 程序”
- ios - iOS - 如何在系统通讯录中获取设备名称排序?