2016-09-14 6 views
3

viewPager内でフラグメントを置き換える方法については他の回答を検索しましたが、役に立たないものです。ViewPagerでフラグメントを置き換える - NPEを取得する

設定は通常ですが、私は2つの断片があります。私はその後、onActivityResultに、私は新しいフラグメントと、現在の断片を置換したいオーバーレイモード(Google検索)で新しいテントを開始し、検索ボタンを持つアクションバーから

[Fragment1] [Fragment2]

私はSearchFragmentを完了しており、それを第3のフラグメントとしてタブに追加すると機能します。しかし、私は、Fragment2を新しい検索フラグメントで置き換えたいだけです。

私は、それが役立つsectionsPagerAdapterクラスを持っています。

java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=Intent { (has extras) }} to activity {com.example.app/com.example.MainActivityTabs}: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState 

at com.example.MainActivityTabs.onActivityResult(MainActivityTabs.java:168) 

168(.commitです:エラーでアプリがクラッシュしかし

私はアクションバーで[検索]をクリックすると、だから私は(onActivityResultで焼成このコードを持っている)

SearchFragment searchFragment = new SearchFragment(); 
    FragmentManager fm = getSupportFragmentManager(); 
    fm.beginTransaction().replace(R.id.container, searchFragment) 
         .addToBackStack(null) 
         .commit(); 

);

ボタンを押したときにフラグメントトランザクションが発生しても、少なくともクラッシュすることはありませんが、ページャ内の両方のフラグメントがクリアされます。だからそこには2つの問題があると思う。あなたはonActivityResult()

でフラグメントをコミットする場合、私は同じ問題を通じて来た

おかげ

+0

ビューを追加するページャとアダプタコード – USKMobility

+0

p ostあなたのフルコード –

+0

'onactivityResult()'は、実行可能ファイルをポストするためにいくつかのビューまたはハンドラを使い、その実行可能ファイルにそのタスクを行います。次のようになります: 'new Handler()。post(新しいRunnable(){});' –

答えて

0

が、それは動作しません。しかし、あなたは、フラグメントトランザクションの詳細について

boolean replaceFragment=false; 

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     replaceFragment = true; 
} 

@Override 
public void onResume() { 
    super.onResume(); 
    if (replaceFragment) { 
     replaceFragment = false; 
     //do your fragment transaction in handler with some time 
     new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        //Do your fragment transaction here 
       } 
     }, 500); 
    } 
} 

することによって、これを達成することができますエラーが表示されます https://medium.com/@bherbst/the-many-flavors-of-commit-186608a015b1#.9gnzh4wqi

+0

ありがとうございます、はいonResumeからの呼び出しは仕事をしました。 –

関連する問題