2017-08-11 16 views
0

私のフラグメントの1つを私のフラグメントのアダプタホルダークラスonClickの1つをorederに追加したいのですが、これは以下のコードを試したものです。非フラグメントクラスのgetSupportFragmentManagerを解決できません

@Override 
public void onClick(View view) { 


    try { 
     Activity activity = (Activity) context; 
     GalleryFragment galleryFragment = new GalleryFragment(); 
     activity.getSupportFragmentManager().beginTransaction() 
       .addToBackStack(null) 
       .add(R.id.fragment_container, galleryFragment).commit(); 


    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

} 

も私の場合、これを解決する方法。getActivity.getSupportFragmentManager().beginTransaction() .addToBackStack(null) .add(R.id.fragment_container, galleryFragment).commit();

を試みたが、エラーを取得することは.getSupportFragmentManagerを()を解決することはできません?。 FragmentActivity

FragmentActivity activity = (FragmentActivity) context; 
activity.getSupportFragmentManager().beginTransaction()... 

答えて

0

変更しますActivityので、それはあなたのアダプタクラスに右でありますか?

どのようにあなたのADAPに

public void goToFragment(Fragment fragment) { 
    getSupportFragmentManager().beginTransaction() 
       .addToBackStack(null) 
       .add(R.id.fragment_container, fragment).commit(); 
} 

その後

((MainActivity) activity).getFM().beginTransaction() 
       .addToBackStack(null) 
       .add(R.id.fragment_container, galleryFragment).commit(); 

または

あなたMainActivityであなたのアダプタクラスで

public FragmentManager getFM() { 
    return getSupportFragmentManager(); 
} 

次に、あなたのMainActivityでこれを入れについてterクラス

((MainActivity) activity).goToFragment(galleryFragment); 
+0

ありがとう:)、愚かな間違い、あなたは私の時間を保存した、答えを受け入れる – Gibs

0

関連する問題