|
|
|
@ -0,0 +1,57 @@
|
|
|
|
|
NoteListActivity类:
|
|
|
|
|
public void supportInvalidateOptionsMenu() {
|
|
|
|
|
invalidateOptionsMenu(); // 最终调用 Activity 的原生方法
|
|
|
|
|
}
|
|
|
|
|
if(secret_mode == 1)
|
|
|
|
|
menu.findItem(R.id.menu_secret).setVisible(false);
|
|
|
|
|
else
|
|
|
|
|
menu.findItem(R.id.menu_quit_secret).setVisible(false);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case R.id.menu_secret: { // 进入私密模式
|
|
|
|
|
secret_mode = 1; // 先临时设为1(用于对话框标题提示)
|
|
|
|
|
AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this);
|
|
|
|
|
dialog.setTitle("重要提醒")
|
|
|
|
|
.setMessage("您确认进入私密模式吗?")
|
|
|
|
|
.setCancelable(false)
|
|
|
|
|
.setPositiveButton("确认", (d, which) -> {
|
|
|
|
|
startAsyncNotesListQuery();
|
|
|
|
|
Toast.makeText(NotesListActivity.this, "您已进入私密模式", Toast.LENGTH_SHORT).show();
|
|
|
|
|
})
|
|
|
|
|
.setNegativeButton("取消", (d, which) -> {
|
|
|
|
|
secret_mode = 0; // 恢复状态
|
|
|
|
|
supportInvalidateOptionsMenu(); // 强制刷新菜单
|
|
|
|
|
})
|
|
|
|
|
.show();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case R.id.menu_quit_secret: { // 退出私密模式
|
|
|
|
|
AlertDialog.Builder dialog = new AlertDialog.Builder(NotesListActivity.this);
|
|
|
|
|
dialog.setTitle("重要提醒")
|
|
|
|
|
.setMessage("您确认退出私密模式吗?")
|
|
|
|
|
.setCancelable(false)
|
|
|
|
|
.setPositiveButton("确认", (d, which) -> {
|
|
|
|
|
secret_mode = 0;
|
|
|
|
|
startAsyncNotesListQuery();
|
|
|
|
|
supportInvalidateOptionsMenu(); // 刷新菜单
|
|
|
|
|
Toast.makeText(NotesListActivity.this, "您已退出私密模式", Toast.LENGTH_SHORT).show();
|
|
|
|
|
})
|
|
|
|
|
.setNegativeButton("取消", null) // 无需操作
|
|
|
|
|
.show();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ShareActionProvider:
|
|
|
|
|
@Override
|
|
|
|
|
public boolean onCreateOptionsMenu(Menu menu) {
|
|
|
|
|
getMenuInflater().inflate(R.menu.note_list, menu);
|
|
|
|
|
MenuItem enterSecret = menu.findItem(R.id.menu_secret);
|
|
|
|
|
MenuItem quitSecret = menu.findItem(R.id.menu_quit_secret);
|
|
|
|
|
enterSecret.setVisible(secret_mode == 0); // 非私密模式时显示"进入"
|
|
|
|
|
quitSecret.setVisible(secret_mode == 1); // 私密模式时显示"退出"
|
|
|
|
|
return true;
|
|
|
|
|
}
|