Я использую Android Studio, которая реализует все функции класса фрагмента. Я получаю следующее исключение среды выполнения:Как добавить фрагмент в свою активность динамически?
must implement OnFragmentInteractionListener
Вот мой код, и я реализовал OnFragmentInteractionListener
в моей основной деятельности.
ОСНОВНАЯ ДЕЯТЕЛЬНОСТЬ:
public class MainActivity extends FragmentActivity implements BlankFragment.OnFragmentInteractionListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (findViewById(R.id.fragment_container) != null) {
BlankFragment fragment = new BlankFragment();
android.support.v4.app.FragmentManager manager = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction ft = manager.beginTransaction();
ft.add(R.id.fragment_container, fragment).commit();
}
@Override
public void onFragmentInteraction(Uri uri) {}
}
BLANK ФРАГМЕНТ:
public class BlankFragment extends android.support.v4.app.Fragment {
private OnFragmentInteractionListener mListener;
public interface OnFragmentInteractionListener {
public void onFragmentInteraction(Uri uri);
}
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnFragmentInteractionListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnFragmentInteractionListener");
}
}
}
Остальные методы класса фрагмента и основной деятельности также осуществляются по умолчанию. Я также изменил LinearLayout
с FrameLayout
в main_activity.xml file and also assigned
android: id` к нему, на который делается ссылка. Что не так с моим кодом?
Вы инициализировали «mListener» объект интерфейса с активностью? – user007
Вы используете android.support.v4.app.Fragment как базовый класс в BlankFragment или android.app.Fragment? – lal
Ваш код не ясен. Пожалуйста, повторите два класса (активность и фрагмент) – GVillani82