如何在单击按钮时打开特定的选项卡式活动? [英] How to open a specific tabbed activity on button click?
问题描述
我有一个包含2个按钮的活动-登录和注册.两者都有一个链接的活动(基于片段的选项卡式活动),其中包含登录/注册"表单.
I have an activity which contains 2 buttons - Login and Sign up. Both of these has an activity linked (Fragment based Tabbed activity) which contains the Login/Signup form.
现在,单击按钮时,我无法导航至特定选项卡.即,如果单击注册按钮,则应打开基于注册片段的选项卡,如果单击登录按钮,则应打开基于登录片段的选项卡.
Now I'm unable to navigate to the particular tab when clicked on a button. ie, If signup button is clicked, it should open Signup fragment based tab and If login button is clicked, it should open login fragment based tab.
我该如何实现?
下面是我的相应操作代码.
Below are my codes for the respective actions.
家庭活动.java-
public class HomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
findViewById(R.id.signup_btn).setOnClickListener(listener_signup_btn);
findViewById(R.id.signin_btn).setOnClickListener(listener_signin_btn);
}
View.OnClickListener listener_signup_btn = new View.OnClickListener() {
@Override
public void onClick(View view) {
//Intent intent = new Intent(HomeActivity.this, SignupActivity.class);
//startActivity(intent);
}
};
View.OnClickListener listener_signin_btn = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(HomeActivity.this, HomeTaberActivity.class);
startActivity(intent);
}
};
}
HomeTaberActivity.java-
public class HomeTaberActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener {
private TabLayout hometabLayout;
private ViewPager homeviewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hometaber);
hometabLayout = (TabLayout) findViewById(R.id.hometabLayout);
hometabLayout.addTab(hometabLayout.newTab().setText("Sign In"));
hometabLayout.addTab(hometabLayout.newTab().setText("Sign Up"));
hometabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
homeviewPager = (ViewPager) findViewById(R.id.homepager);
HomePager adapter = new HomePager(getSupportFragmentManager(), hometabLayout.getTabCount());
adapter.Initialise(new LoginActivity(),new SignupActivity());
adapter.addstring("Sign In"); adapter.addstring("Sign Up");
homeviewPager.setAdapter(adapter);
hometabLayout.setupWithViewPager(homeviewPager);
}
@Override
public void onTabSelected(TabLayout.Tab tab) {
homeviewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
}
推荐答案
添加一个有意图的值.即登录1和注册2,并检查活动值是否为1,然后查看当前页面0项,如果值为2,则查看当前页面1项.
家庭活动.java :
public class HomeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
findViewById(R.id.signup_btn).setOnClickListener(listener_signup_btn);
findViewById(R.id.signin_btn).setOnClickListener(listener_signin_btn);
}
View.OnClickListener listener_signup_btn = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(HomeActivity.this, HomeTaberActivity.class);
intent.putExtra("value", 1);
startActivity(intent);
}
};
View.OnClickListener listener_signin_btn = new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(HomeActivity.this, HomeTaberActivity.class);
intent.putExtra("value", 2);
startActivity(intent);
}
};
}
HomeTaberActivity.java :
public class HomeTaberActivity extends AppCompatActivity implements TabLayout.OnTabSelectedListener {
private TabLayout hometabLayout;
private ViewPager homeviewPager;
int value;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hometaber);
hometabLayout = (TabLayout) findViewById(R.id.hometabLayout);
hometabLayout.addTab(hometabLayout.newTab().setText("Sign In"));
hometabLayout.addTab(hometabLayout.newTab().setText("Sign Up"));
hometabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
homeviewPager = (ViewPager) findViewById(R.id.homepager);
HomePager adapter = new HomePager(getSupportFragmentManager(), hometabLayout.getTabCount());
adapter.Initialise(new LoginActivity(),new SignupActivity());
adapter.addstring("Sign In"); adapter.addstring("Sign Up");
homeviewPager.setAdapter(adapter);
hometabLayout.setupWithViewPager(homeviewPager);
final Intent intent = new Intent(getIntent());
value = intent.getIntExtra("value", -1);
if(value == 1) {
viewpager.setCurrentItem(0);
} else {
viewpager.setCurrentItem(1);
}
}
@Override
public void onTabSelected(TabLayout.Tab tab) {
homeviewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
}
这篇关于如何在单击按钮时打开特定的选项卡式活动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!