Как намереваться из своей деятельности фрагментировать в моей панели вкладок? - PullRequest
0 голосов
/ 17 октября 2018

Я пытаюсь перейти от своей деятельности к активности с фрагментом.намерение в порядке, но то, что я хочу, это когда оно намерено, он автоматически вызовет фрагмент2, основываясь на том, что он щелкнул в предыдущем действии.я пытаюсь сделать намерение с getExtra, чтобы сделать, если в активности фрагмента сделать, если идентификатор равен 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 голосов
/ 17 октября 2018

Простой способ использования активности и вкладки: TabLayout с использованием действий вместо фрагментов

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

});

0 голосов
/ 17 октября 2018

В ваших действиях 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();
  }

Дайте мне знать, если это работает!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...