android - 获取选项卡式活动中当前选项卡的编号
问题描述
首先,我是 Android 开发的新手,非常感谢您的帮助。
我在 android studio 中有一个选项卡式活动,我有一个 FloatingActionButton 来在选项卡式活动的每个片段中添加一个项目。然后此按钮调用一个新的 Activty,我想将选项卡编号传递给新活动,以便我可以将其存储在数据库中。
如何获取生成新活动的选项卡编号?
下面是代码:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_portal);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);
TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
mViewPager.addOnPageChangeListener(new
TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new
TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent startNewPostActivity = new Intent(getApplicationContext(), NewPostActivity.class);
startNewPostActivity.putExtra("Fragment_Position", position_fragment);
startActivity(startNewPostActivity);
}
});
}
为了获得这个位置,我做了以下事情:设置 position_fragment = position; 但是这会返回错误的选项卡编号。
公共类 SectionsPagerAdapter 扩展 FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
// getItem is called to instantiate the fragment for the given page.
// Return a PlaceholderFragment (defined as a static inner class below).
position_fragment = position; // not good
return PlaceholderFragment.newInstance(position);
}
@Override
public int getCount() {
// Show 5 total pages.
return 5;
}
}
}
解决方案
尝试这个:
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent startNewPostActivity = new Intent(getApplicationContext(), NewPostActivity.class);
startNewPostActivity.putExtra("Fragment_Position", mViewPager.getCurrentItem());
startActivity(startNewPostActivity);
}
});
推荐阅读
- apache - Drupal 7 从一台计算机的 MAMP 到另一台计算机
- google-app-maker - 从电子表格中获取数据时出错
- ms-access - 访问错误语言 - 执行时出现错误“-2147319779 (8002801d)”
- javascript - 使用 javascript 记录浏览器选项卡
- ios - 用户默认值需要时间快速保存
- azure - 将证书从 Keyvault 移动到不同订阅中的另一个 Keyvault
- dynamics-crm - Dynamics CRM:合同上的货币字段被锁定(禁用)并且无法解锁
- testing - 我如何在测试场景中连接 NServiceBus 的 SqlSaga?
- elasticsearch - 找出 Elasticsearch 中的数据路径分片位于哪个数据路径分片上
- arrays - 速度 - 多维数组