如何在我的活动中意图在选项卡栏中分段?

时间:2018-10-17 09:50:10

标签: android android-fragments android-intent android-tabs

我正在尝试从我的活动到有片段的活动。意图还可以,但我想要的是意图时,它将基于它在上一个活动中单击的内容自动调用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;
    }

但是它也不会工作。请帮忙有什么主意吗?

2 个答案:

答案 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);
}

});