Ошибка добавления FragmentTransaction () - PullRequest
0 голосов
/ 14 мая 2018

Я хочу добавить фрагмент к основному действию, но он показывает мне error, если я вставлю объект файла java фрагмента в качестве второго параметра для метода добавления.Я импортировал android.support.v4.app.Fragment, и это не помогло.

Вот мой код:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    FragmentManager managerFragment;
    managerFragment = getFragmentManager();
    FragmentTransaction tranzactieFragment = managerFragment.beginTransaction();
    frg_jos FragJos = new frg_jos();
    tranzactieFragment.add(R.id.frg,FragJos);
}

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Я бы написал так:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (savedInstanceState == null) {        
         getSupportFragmentManager()
             .beginTransaction()
             .add(R.id.frg, FragJos.newInstance())
             .commit(); 
    }
}

и я бы добавил

public static FragJos newInstance() {
    return new FragJos();
}

К вашему фрагменту. Это то, что рекомендует Android / Google. Не выполняйте new XXXFragment() напрямую и не передавайте параметры через конструктор фрагментов ( по причинам состояния восстановления ).

0 голосов
/ 14 мая 2018

Сделать это

    if (savedInstanceState == null) { 
       FragmentManager managerFragment;
       managerFragment = getSupportFragmentManager();
       FragmentTransaction tranzactieFragment = managerFragment.beginTransaction();
       frg_jos FragJos = new frg_jos();
       tranzactieFragment.replace(R.id.frg,FragJos);
       tranzactieFragment.commit();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...