Commutateur Fragment par défaut avec Android Studio de navigation tiroir
Je suis un peu perdu avec la mise en œuvre de la navigation tiroir dans Android Studio. La méthode onCreate appeler le PlaceholderFragment
classe, que je ne comprends pas vraiment ce qu'il est.
Mais de toute façon, où dois-je mettre en œuvre mes onItemClickListener
pour afficher les différents fragments
selon l'élément sélectionné dans la barre de navigation de tiroir ?
C'est mon 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 : le onItemClickListener
dans la classe est destinée à un autre ListView
qui n'est pas le seul dans le tiroir de navigation. Fondamentalement, je suis en utilisant parse.com et remplissage d'une ListView
avec des éléments de la db.
Grâce.
EDIT:
Je suis enfin en utilisant ce code dans les 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();
}
Dans fragment = new HomeFragment();
, android studio de me dire que le android.de soutien.v4.app.fragment est nécessaire. Pourquoi est-ce ?
OriginalL'auteur ArnaudToutain | 2014-07-22
Vous devez vous connecter pour publier un commentaire.
(Dans le cas où vous n'avez pas) : Dans AndroidStudio, il est préférable de générer des Activités de l'échantillon avec la Navigation de Tiroir (Alt+Insert -> Activité -> Navigation de Tiroir (sur Android Studio de 0,8.+))
Vous obtiendrez d'activité qui héberge NavigationDrawerFragment avec quelques un drawable.
Dans NavigationDrawerFragment
onCreateView
vous remplir la liste des éléments que vous souhaitez afficher dans le tiroir, et de l'activité de la mise en œuvre automatique de l'interfaceNavigationDrawerFragment.NavigationDrawerCallbacks
avec la méthodeonNavigationDrawerItemSelected(int position)
. Cette méthode est appelée lorsque vous cliquez sur l'élément à la position définie dans la Navigation de Tiroir, et cette méthode vous permet de remplacerR.id.container
avec le fragment dont vous avez besoin sur cette position.Vous n'avez pas à utiliser
PlaceholderFragment
, c'est la maquette d'être affiché en premier temps, avant de mettre en place votre propre. N'hésitez pas à supprimer et d'en créer de tout fragment que vous voulez.Et
OnItemClickListener
est déjà mis en œuvre dans la méthodeonCreateView
de NavigationDrawerFragment.oui, c'est vrai
Lors de la création de mon Fragment , que dois-je utiliser, étant donné que je suis en utilisant le tiroir à partir d'Android Studio ? android.app.Fragment ou android.de soutien.v4.app.Fragment ?
mieux utiliser android.app.Fragment, si une autre variante est possible également (avec quelques modifications)
J'ai un problème de ne pas utiliser de support.v4. Voir la modifier à ma question.
OriginalL'auteur Andriy Bas
L'espace réservé fragment est juste que. C'est un vide fragment qui est utilisé dans le code généré automatiquement pour vous montrer comment utiliser le tiroir de navigation. Vous pouvez utiliser n'importe quel fragment de la navigation d'un tiroir.
Vous pouvez afficher un fragment lorsqu'un élément est sélectionné dans la onNavigationDrawerItemSeleced(int position) qui est dans l'activité qui met en œuvre NavigationDrawerFragment. Vous pouvez utiliser un FragmentManager échange de l'ancien fragment avec le nouveau.
OriginalL'auteur gdvander