Фрагмент переключателя со стандартным навигационным ящиком Android Studio

Я немного потерялся в реализации навигационного ящика в Android Studio. Метод onCreate вызывает класс PlaceholderFragment который я действительно не понимаю, для чего он нужен.

Но в любом случае, где я должен реализовать свой onItemClickListener для отображения разных fragments соответствии с элементом, выбранным в ящике навигации?

Это мой текущий PlaceholderFragment:

 public static class PlaceholderFragment extends Fragment { private ListView listView; private CustomAdapter expenseAdapter; public PlaceholderFragment() { } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); expenseAdapter = new CustomAdapter(getActivity()); listView = (ListView) rootView.findViewById(R.id.lvExpense); listView.setAdapter(expenseAdapter); expenseAdapter.loadObjects(); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) { String expense = expenseAdapter.getItem(position).get("title").toString(); Toast.makeText(getActivity(), expense, Toast.LENGTH_SHORT).show(); } }); return rootView; } } 

PS: onItemClickListener в классе – для другого ListView который не является onItemClickListener в навигационном ящике. В основном я использую parse.com и заполняю ListView элементами из db.

Благодарю.

EDIT: я, наконец, использую этот код внутри onNavigationDrawerItemSelected :

 Fragment fragment = null; switch (position) { case 0: fragment = new HomeFragment(); break; case 1: fragment = new SearchFragment(); break; default: break; } if (fragment != null) { FragmentManager fragmentManager = getSupportFragmentManager(); fragmentManager.beginTransaction() .replace(R.id.container, fragment).commit(); } 

В fragment = new HomeFragment(); , Андроидная студия сообщит мне, что необходим файл android.support.v4.app.fragment. Почему это ?

(В случае, если вы этого не сделали): В AndroidStudio лучше создать образец Activity с навигационным ящиком (Alt + Insert -> Activity -> Активность навигационного ящика (на Android Studio 0.8. +)). Вы получите активность, которая Хосты NavigationDrawerFragment с некоторыми чертежами.

В NavigationDrawerFragment onCreateView вы заполняете элементы списка, которые хотите отобразить в ящике, и активность автоматически реализует интерфейс NavigationDrawerFragment.NavigationDrawerCallbacks с методом onNavigationDrawerItemSelected(int position) . Этот метод вызывается, когда вы нажимаете элемент в определенном положении в навигационном ящике, и в этом методе вы заменяете R.id.container фрагментом, который вам нужен в этой позиции.

Вам не нужно использовать PlaceholderFragment , это макет, который будет отображаться в первый раз, прежде чем вы будете реализовывать свои собственные. Не стесняйтесь удалять его и создавать нужный фрагмент.

И OnItemClickListener уже реализован в методе onCreateView для NavigationDrawerFragment.

Фрагмент заполнителя – вот что. Это пустой фрагмент, который используется в автоматически сгенерированном коде, чтобы показать вам, как использовать навигационный ящик. Вы можете использовать любой фрагмент с навигационным ящиком.

Вы можете отобразить фрагмент, когда элемент выбран в onNavigationDrawerItemSeleced (int position), который находится в активности, которая реализует NavigationDrawerFragment. Вы можете использовать FragmentManager для замены старого фрагмента на новый.