gpt4 book ai didi

java - 切换到选项卡式 Activity 中的第一个选项卡在 Android 中无法正常工作

转载 作者:太空宇宙 更新时间:2023-11-04 10:47:30 26 4
gpt4 key购买 nike

所以我有一个奇怪的问题。基本上我有一个带有四个按钮的主要 Activity ,每个按钮打开一个不同的选项卡(有 4 个选项卡)。现在,如果我单击第四个按钮,我会转到第四个 fragment ,但如果我尝试单击选项卡式 Activity 中的第一个选项卡,它不会执行任何操作。

因此,如果我从第二个、第三个或第四个开始,我无法转到第一个选项卡,除非我先单击任何其他选项卡。

这只是第一个像这样工作的选项卡,这让我觉得也许有一些值应该在单击菜单按钮时更改,但没有?

这是我的 TabsActivity onCreate:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tabs);


Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
// Create the adapter that will return a fragment for each of the three
// primary sections of the activity.
mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());

// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(R.id.container);
mViewPager.setAdapter(mSectionsPagerAdapter);

TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);

//
int defaultValue = 5;
//int page = getIntent().getIntExtra("One", defaultValue);
mViewPager.setCurrentItem(getIntent().getIntExtra("One", defaultValue));
//
//
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
//

mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager))

这里还有负责选择 fragment 的 TabsActivity 类:

public class SectionsPagerAdapter extends FragmentPagerAdapter {

public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
switch (position){
case 0:
tab1recipes tab1 = new tab1recipes();
return tab1;
case 1:
tab2timer tab2 = new tab2timer();
return tab2;
case 2:
tab3measure tab3 = new tab3measure();
return tab3;
case 3:
tab4substit tab4 = new tab4substit();
return tab4;
default:
return null;

}
}

这是主要 Activity :

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button btn1 = (Button) findViewById(R.id.recipesbtn);
Button btn2 = (Button) findViewById(R.id.timerbtn);
Button btn3 = (Button) findViewById(R.id.measurebtn);
Button btn4 = (Button) findViewById(R.id.subsbtn);

btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int page=0;
Intent intent = new Intent(MainActivity.this, TabsActivity.class);//startActivity();
intent.putExtra("One", page);
startActivity(intent);
}
});

btn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int page=1;
Intent intent = new Intent(MainActivity.this, TabsActivity.class);//startActivity();
intent.putExtra("One", page);
startActivity(intent);
}
});

btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int page=2;
Intent intent = new Intent(MainActivity.this, TabsActivity.class);//startActivity();
intent.putExtra("One", page);
startActivity(intent);
}
});

btn4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int page=3;
Intent intent = new Intent(MainActivity.this, TabsActivity.class);//startActivity();
intent.putExtra("One", page);
startActivity(intent);
}
});

最佳答案

好吧,我终于修好了。方法如下(以防万一有人也需要):
我放置了

mViewPager.setCurrentItem(getIntent().getIntExtra("One", defaultValue));

之后

mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));

现在我觉得自己很蠢

关于java - 切换到选项卡式 Activity 中的第一个选项卡在 Android 中无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48233647/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com