2016-05-24 16 views
0

ボタンをクリックして2番目のフラグメント(YourResultFragment.java)を開こうとしています。 私はたくさんありましたが、なぜ動作していないのかわかりません。2番目のフラグメントを開くことができません

public class KnowYourBodyFragment extends Fragment { 


    public KnowYourBodyFragment() { 
     // Required empty public constructor 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 


    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
      Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment_know_your_body, container, false); 




     Button button = (Button)rootView.findViewById(R.id.button2); 
     button.setOnClickListener(new OnClickListener() 
     { 
      @Override 
      public void onClick(View v) 
      { 

       Fragment mFragment = new YourResultFragment(); 
       getActivity().getSupportFragmentManager().beginTransaction() 
          .replace(R.id.know_your_body_container, mFragment).commit(); 
      } 
     }); 

     // Inflate the layout for this fragment 
     return rootView; 
    } 
+0

このボタンは、アクティビティまたはfrgamentに存在しますか? –

+0

あなたのXMLコンテンツのアクティビティを投稿してください。 – Amit

答えて

1

これはDefault Container android.R.id.contentと交換してみてください。

Button button = (Button)rootView.findViewById(R.id.button2); 
button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      Fragment newFragment = new YourResultFragment(); 
      FragmentTransaction transaction = getFragmentManager() 
        .beginTransaction(); 

      // Replace whatever is in the fragment_container view with this 
      // fragment, 
      // and add the transaction to the back stack 
      transaction.replace(android.R.id.content, newFragment); 
      transaction.addToBackStack("tag"); 

      // Commit the transaction 
      transaction.commitAllowingStateLoss(); 

     } 
    }); 

transaction.addToBackStack("tag")は何ですか?

このトランザクションをバックスタックに追加します。これは、トランザクションがコミットされた後に記憶され、後でスタックからポップされるときにその動作を戻すことを意味します。

+1

ありがとうございましたBuddyは動作しますが、このコード行は、.. transaction.addToBackStack( "tag"); –

+0

@SujitSoniそれがうまくいくならば、**受諾**および**受験投票**もまた答えであるので、他の人に役立つでしょう。 –

+0

@SujitSoniチェック私は 'addTobackStack'を更新しました。 –

関連する問題