Android 如何在单击另一个菜单项后将一个菜单项的可见性设置为false

Android 如何在单击另一个菜单项后将一个菜单项的可见性设置为false,android,android-layout,Android,Android Layout,我试图在单击UnsaveMessage后将SaveMessage的可见性设置为true,并将UnsaveMessage的可见性设置为false,但我仅在项上看到,而在Onclick上没有任何操作 我的代码 private boolean isEditing = true; @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); in

我试图在单击UnsaveMessage后将SaveMessage的可见性设置为true,并将UnsaveMessage的可见性设置为false,但我仅在项上看到,而在Onclick上没有任何操作

我的代码

 private boolean isEditing = true;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_message,menu);



    menu.findItem(R.id.UnsavedMessage).setVisible(isEditing);
    menu.findItem(R.id.SaveMessage).setVisible(!isEditing);
    return super.onCreateOptionsMenu(menu);
}

@Override
public void supportInvalidateOptionsMenu() {
    super.supportInvalidateOptionsMenu();

}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if(item.getItemId() == R.id.UnsavedMessage){
        isEditing=false;

    }
    if (item.getItemId()==R.id.SaveMessage){
        isEditing=true;

    }
    return true;
}
你需要这样做

private boolean isEditing = true;
private MenuItem unSavedMsg;
private MenuItem SaveMsg;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_message,menu);

    unSavedMsg = menu.findItem(R.id.UnsavedMessage)
    unSavedMsg .setVisible(isEditing);
    saveMsg = menu.findItem(R.id.SaveMessage)
    saveMsg .setVisible(!isEditing);
    return super.onCreateOptionsMenu(menu);
}

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

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

    if(item.getItemId() == R.id.UnsavedMessage){
        isEditing=false;
        // Show/Hide Btn here
        unSavedMsg.setVisibility(false)
        saveMsg.setVisibility(true)
    }
    if (item.getItemId()==R.id.SaveMessage){
        isEditing=true;
        // Show/Hide Btn here
        unSavedMsg.setVisibility(true)
        saveMsg.setVisibility(false)
    }
    return true;
}

当您想显示该项目时?@OhhhThatVarun UnsavedMessage应该从一开始就可见,当我单击它时,它应该不可见,而SaveMessage也应该可见。当我单击SaveMessage时,它应该不可见,而UnsavedMessage应该可见。@RaviMalik看我的答案