如何从我的 activity 到标签栏中的片段?
How to intent from my activity to fragment in my tab bar?
我正在尝试使用片段从我的 activity 到 activity。意图是好的,但我想要的是当它意图时它会根据它在之前 activity 中点击的内容自动调用 fragment2。我正在尝试使用 getExtra 制作 if in activity of fragment to make if the id is 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;
}
但它也行不通。请问有什么想法吗?
在您的 onCreate 活动中或设置 TabLayout 的任何地方,您都可以使用分配给它的编号检索特定的选项卡(添加到视图寻呼机(适配器)的第一个选项卡应为 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();
}
如果可行,请告诉我!
使用 activity 和选项卡的简单方法就是这个
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);
}
});
我正在尝试使用片段从我的 activity 到 activity。意图是好的,但我想要的是当它意图时它会根据它在之前 activity 中点击的内容自动调用 fragment2。我正在尝试使用 getExtra 制作 if in activity of fragment to make if the id is 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;
}
但它也行不通。请问有什么想法吗?
在您的 onCreate 活动中或设置 TabLayout 的任何地方,您都可以使用分配给它的编号检索特定的选项卡(添加到视图寻呼机(适配器)的第一个选项卡应为 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();
}
如果可行,请告诉我!
使用 activity 和选项卡的简单方法就是这个
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);
}
});