我正在尝试从我的活动到有片段的活动。意图还可以,但我想要的是意图时,它将基于它在上一个活动中单击的内容自动调用fragment2。我正在尝试使用getExtra来使片段处于活动状态,以使id为1,然后使用以下代码调用该片段:
String sessionId2;
String id = null;
String sessionId = getIntent().getStringExtra("baik");
sessionId2 = getIntent().getStringExtra("diperbaiki");
String sessionId3 = getIntent().getStringExtra("rusak");
Log.d("baik",""+sessionId);
Log.d("diperbaiki",""+sessionId2);
Log.d("rusak",""+sessionId3);
if (id == sessionId3) {
TabLayout.Tab tab = tabLayout.getTabAt(1);
tab.select();
}else if (id == sessionId2) {
TabLayout.Tab tab = tabLayout.getTabAt(2);
tab.select();
}
,但仍然无法正常工作。 而且我还尝试更改以下代码的位置:
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).
if (id == sessionId2){
position = 1;
}
switch (position) {
case 0:
// Top Rated fragment activity
return new BaikFragment();
case 1:
// Games fragment activity
return new DiperbaikiFragment();
case 2:
// Movies fragment activity
return new RusakFragment();
}
return null;
}
但是它也不会工作。请帮忙有什么主意吗?
答案 0 :(得分:1)
在活动onCreate或设置TabLayout的任何位置上,您都可以使用为其分配的编号来检索特定的Tab(添加到视图分页器(适配器)的第一个Tab应该为0,第二为1) ):
TabLayout.Tab tab = tabLayout.getTabAt(0);
因此,我建议您在设置标签页布局后执行以下操作:
String sessionId= getIntent().getStringExtra("baik");
if (id == sessionId){
TabLayout.Tab tab = tabLayout.getTabAt(0);
tab.select();
}
else if (....) {
TabLayout.Tab tab2 = tabLayout.getTabAt(1);
tab2.select();
}
让我知道这是否有效!
答案 1 :(得分:0)
使用活动和标签的简便方法是此TabLayout using activities instead of fragments
Your_layout_id.setOnTouchListener(new OnSwipeTouchListener() {
public void onSwipeTop() {
Toast.makeText(MyActivity.this, "top", Toast.LENGTH_SHORT).show();
}
public void onSwipeRight() {
Toast.makeText(MyActivity.this, "right", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
public void onSwipeLeft() {
Toast.makeText(MyActivity.this, "left", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(this, FirstActivity.class);
startActivity(intent);
}
public void onSwipeBottom() {
Toast.makeText(MyActivity.this, "bottom", Toast.LENGTH_SHORT).show();
}
public boolean onTouch(View v, MotionEvent event) {
return gestureDetector.onTouchEvent(event);
}
});