2015-11-23 3 views
2

Я проверил похожие сообщения, и их решения, похоже, не работают. Я (очевидно) новичок в этом, так что это может быть просто недостаток мастерства с моей стороны.Добавление фрагмента, возникает ошибка «неправильного второго аргумента»

Я получаю сообщение об ошибке:

"Wrong 2nd argument type Found:'mycompany.fragment_test... required: 'android.support.v4.app.Fragment

replace (int, android.support.v4.ap.Fragment) to (int, mycompany.fragment_test...)'

import android.support.v4.app.FragmentActivity; 
import android.support.v4.app.FragmentTransaction; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.app.Fragment; 
import android.os.Bundle; 


public class MainActivity extends FragmentActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if (findViewById(R.id.fragment_container) != null) { 
     if (savedInstanceState != null) { 
      return; 
     } 

     FragmentManager fm = getSupportFragmentManager(); 
     FragmentTransaction ft = fm.beginTransaction(); 

     Menu_Fragment fragment = new Menu_Fragment(); 
     fragment.setArguments(getIntent().getExtras()); 



     ft.replace(R.id.fragment_container, fragment); //This is the line with the issue 
     ft.commit(); 

    } 

    } 
} 

ответ

6

Menu_Fragment не унаследовав от android.support.v4.app.Fragment. Предположительно, он наследуется от android.app.Fragment.

Существует два варианта реализации фрагмента: нативный (например, android.app.Fragment) и задний порт (например, android.support.v4.app.Fragment). Вы должны быть последовательными. Ваша деятельность - FragmentActivity, которая является частью бэкпорта, поэтому вам нужны ваши фрагменты для наследования от android.support.v4.app.Fragment.

+0

Ничего себе, хорошо, что делает полный смысл. Согласованность между ними даже не была на моем радаре. Спасибо, что указали это и научили меня этому. – RM3

Смежные вопросы