Est-ce que je peux éventuellement désactiver/activer un élément de menu option à partir d'un bouton à l'intérieur de fragments? Sur mon projet, je veux désactiver un élément de menu spécifique une fois que j'ai réussi à me connecter à partir de fragment. Exemple J'ai cette entrée (bouton) à l'intérieur de la disposition des fragments, une fois que le nom d'utilisateur et le mot de passe sont corrects, je veux désactiver l'option de menu de connexion. Les gars pouvez-vous me donner un exemple sur la façon de le coder? Merci beaucoup d'avance les gars !!! : ')Activer/désactiver un élément de menu option à partir du fragment
0
A
Répondre
0
Appelez InvalidateOptionsMenu
ou supportInvalidateOptionsMenu
lorsque vous souhaitez modifier le menu.
cela entraînera OnPrepareOptionsMenu
à appeler où vous pouvez faire tout ce que vous change comme à votre menu. Par exemple, désactiver ou masquer une option « Connexion » si vous êtes déjà connecté.
0
Oui, vous pouvez activer/désactiver optionmenu
élément de fragment. Remplacer ces méthodes dans le fragment.
@Override
public void onAttach(Context context) {
super.onAttach(context);
setHasOptionsMenu(true);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.menuItem1).setEnabled(false/true);
}
0
I am not doing it correctly. please help. This is my Fragment.java page. I want to disable the log-in option item menu once the login process become successful.
public void setL_cancel(){
log_cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fm4 = getFragmentManager();
FragmentTransaction ft4 = fm4.beginTransaction();
FragmentRoyale fragmentRoyale = new FragmentRoyale();
ft4.replace(R.id.relativeLayout, fragmentRoyale);
ft4.commit();
}
});
}
public void setL_enter(){
l_enter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String name_admin = l_name.getText().toString();
String password_admin = l_password.getText().toString();
String fetchPassWord = database_info.loginEntry(name_admin);
if(password_admin.equals(fetchPassWord))
{
FragmentManager fm_login = getFragmentManager();
FragmentTransaction ft_login = fm_login.beginTransaction();
FragmentRoyale fr_royale = new FragmentRoyale();
ft_login.replace(R.id.relativeLayout, fr_royale);
ft_login.commit();
Toast.makeText(getContext(), "Welcome!", Toast.LENGTH_SHORT).show();
onPrepareOptionsMenu(menu);
}
if (!password_admin.equals(fetchPassWord))
{
l_name.setText("");
l_password.setText("");
Toast.makeText(getContext(), "Username and password didn't match!", Toast.LENGTH_SHORT).show();
}
}
});
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
setHasOptionsMenu(true);
}
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.create_account).setVisible(false);
}
}