2016-10-11 22 views
1

私は同じアクティビティ(ナビゲーションドロワー)の2つのフラグメントを持っています私はそれらのうちの1つにボタンを追加して別のものに切り替えましたが、エラーが発生しています.iこの仕組みがわからない。助けてください同じアクティビティの2つのフラグメントに切り替える方法

public class HomeFragment extends Fragment { 

public HomeFragment() { 
    // 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_home, container, false); 

SwitchBtn= (AppCompatButton) rootView.findViewById(R.id.btnswitch); 

    // Register Button Click event 
    SwitchBtn.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 

    Intent intent = new Intent(getActivity(), 

        FriendsFragment.class); 

      getActivity().startActivity(intent); 

    } 
    }); 
} 

    @Override 
public void onAttach(Activity activity) { 
    super.onAttach(activity); 
} 

@Override 
public void onDetach() { 
     super.onDetach(); 
    } 
} 

答えて

0

新しいアクティビティを開始するのではなく、フラグメント間の切り替えを行っています。この

getFragmentManager().beginTransaction() 
      .replace(R.id.your_container_id, new FriendsFragment()) 
      .commit() 
+0

ありがとうございます@あなたが私の時間と私の人生を保存します。応援 –

0

でこの

Intent intent = new Intent(getActivity(), 

       FriendsFragment.class); 

     getActivity().startActivity(intent); 

を交換し 次のようなフラグメントを開くことができません。必要なことは、同じアクティビティでそれらを作成するか、コンポーネント上で.setVisibleを使用して表示を制御する 'screen'変数を使用することです。

または、あなたができることは、インテントを使用して異なるアクティビティにフラグメントを配置することです。

private Content C = getApplicationContext(); 
Intent myIntent = new Intent(C,yourActivity.class); 
C.startActivity(myIntent); 
関連する問題