如何从我的 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);
}

});