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

Gridview создан в Activty.Gridview Clickevent вызывает фрагмент, а Fragment не вызывается.Android Studio не выдает никакой ошибки.

Я создал фрагмент Home.

Активность не является вызовом фрагмента Home и не выдана ошибка.

activity_main.xml

<FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/frameLayout"/>

MainActivity.java

gridViewGallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

        switch (position){

            case 0 :

               Fragment fragment = new Home();
               FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
               transaction.replace(R.id.frameLayout, fragment); // fragment container id in first parameter is the  container(Main layout id) of Activity
               transaction.addToBackStack(null);  // this will manage backstack
               transaction.commit();

            break;
}}}

1 Ответ

0 голосов
/ 08 июня 2018

Попробуйте использовать FragmentManager вместо:

Fragment fragment = null;
Class FragmentClass = Home.class;
try {
    fragment = (Fragment) fragmentClass.newInstance();
} catch (Exception e) {
    e.printStackTrace();
}

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager
    .beginTransaction()
    .addToBackStack(null) // your manage backstack here
    .replace(R.id.frameLayout, fragment)
    .commit();

Обратите внимание, что это импорт:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
...