2

メインアクティビティーと他のフラグメントが1つあります。その1つのアクティビティのみを使用して、アクティビティのデフォルトフラグメントを表示し、ユーザーがナビゲーションドロワーをクリックするとその項目に応じて、異なる情報で、私は多くのことを探索し、それに対する適切な解決策を持っていなかったのと同じに移入しなければならないの断片、私はここに私のmainactivityクラス、最初のフラグメントクラスの1つのメインアクティビティを設定してアンドロイドにフラグメントを埋め込む方法

public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener, FragmentOne.OnFragmentInteractionListener, 
FragmentTwo.OnFragmentInteractionListener { 

    private ListView mDrawerList; 
    private String[] mNavigationDrawerItemTitles; 
    Toolbar toolbar; 

    private SliderLayout mDemoSlider; 

    DrawerLayout drawer; 
    private CharSequence mDrawerTitle; 
    private CharSequence mTitle; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     mTitle = mDrawerTitle = getTitle(); 
     setSupportActionBar(toolbar); 
    drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
     NavigationView navView = (NavigationView) findViewById(R.id.nav_right_view); 
navView.setNavigationItemSelectedListener(this); 

navView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
       @Override 
       public boolean onNavigationItemSelected(MenuItem item) { 
        // Handle Right navigation view item clicks here. 
        int id = item.getItemId(); 
        Fragment fragment = null; 
        Class fragmentClass = null; 


       if (id == R.id.nav_settings) { 
        fragmentClass = first.class; 

       } else if (id == R.id.nav_logout) { 
        fragmentClass = secnd.class; 

       } try { 
        fragment = (Fragment) fragmentClass.newInstance(); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 



       FragmentManager fragmentManager = getSupportFragmentManager(); 
       fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit(); 
       item.setChecked(true); 

       setTitle(item.getTitle()); 

       DrawerLayout mDrawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
       mDrawer.closeDrawers(); 
       return true; 
      } 
     }); 
    } 

コードをされて貼り付けていますここ、

public class first extends Fragment { 

    private static final String ARG_PARAM1 = "param1"; 
    private static final String ARG_PARAM2 = "param2"; 


    private String mParam1; 
    private String mParam2; 

    private OnFragmentInteractionListener mListener; 

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

    /** 
    * Use this factory method to create a new instance of 
    * this fragment using the provided parameters. 
    * 
    * @param param1 Parameter 1. 
    * @param param2 Parameter 2. 
    * @return A new instance of fragment FragmentOne. 
    */ 
    // TODO: Rename and change types and number of parameters 
    public static first newInstance(String param1, String param2) { 
     FragmentOne fragment = new FragmentOne(); 
     Bundle args = new Bundle(); 
     args.putString(ARG_PARAM1, param1); 
     args.putString(ARG_PARAM2, param2); 
     fragment.setArguments(args); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     if (getArguments() != null) { 
      mParam1 = getArguments().getString(ARG_PARAM1); 
      mParam2 = getArguments().getString(ARG_PARAM2); 
     } 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.fragment_fragment_one, container, false); 
    } 

    // TODO: Rename method, update argument and hook method into UI event 
    public void onButtonPressed(Uri uri) { 
     if (mListener != null) { 
      mListener.onFragmentInteraction(uri); 
     } 
    } 

    @Override 
    public void onAttach(Context context) { 
     super.onAttach(context); 
     if (context instanceof OnFragmentInteractionListener) { 
      mListener = (OnFragmentInteractionListener) context; 
     } else { 
      throw new RuntimeException(context.toString() 
        + " must implement OnFragmentInteractionListener"); 
     } 
    } 

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

    /** 
    * This interface must be implemented by activities that contain this 
    * fragment to allow an interaction in this fragment to be communicated 
    * to the activity and potentially other fragments contained in that 
    * activity. 
    * <p/> 
    * See the Android Training lesson <a href= 
    * "http://developer.android.com/training/basics/fragments/communicating.html" 
    * >Communicating with Other Fragments</a> for more information. 
    */ 
    public interface OnFragmentInteractionListener { 
     // TODO: Update argument type and name 
     void onFragmentInteraction(Uri uri); 
    } 
} 

ありがとうございます

答えて

1

あなたの問題を解決するために、私はちょうどあなたのコードを使用していくつかの改良をしています、あなたの活動ファイルに必要なコードを使用してください。

protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     mTitle = mDrawerTitle = getTitle(); 
     setSupportActionBar(toolbar); 
///it is required code 
    if (savedInstanceState == null) { 
     Fragment fragment = null; 
     Class fragmentClass = null; 
     fragment = new Fragmentforslider(); 
     fragmentClass= FragmentOne.class; 
     try { 

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

     FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit(); 
    } 

    drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
+0

あなたのご提案をお試しください –

関連する問題