每当用户输入错误的密码时,我都会尝试在PasswordUnlockScreen.java中的verifyPasswordAndUnlock()中显示Toast通知。我编写了以下代码,并成功构建。
Toast.makeText(getContext(), "Invalid password", Toast.LENGTH_LONG).show();
然而,Toast没有出现,因为它实际上出现在主屏幕上,当锁定屏幕在顶部时,它是不可见的。我通过在用户成功登录时显示另一个Toast来验证这一点,并且在锁定屏幕消失后Toast仅出现在主屏幕中
我怀疑这是因为getContext()返回主屏幕的上下文。我如何获得Lockscreen的上下文? PasswordUnlockScreen.this甚至不编译,mContext和context都有与getContext()相同的问题
答案 0 :(得分:0)
所有视图都有mContext
字段,该字段已初始化为上下文。
Toast.makeText(mContext, "Invalid password", Toast.LENGTH_LONG).show();
答案 1 :(得分:0)
如前所述,问题可能不在于Context。我猜你正在使用实际的PasswordUnlockScreen源,而不是继承它?如果是这样,您可以尝试使用其KeyguardStatusViewManager
来显示文字:
mStatusViewManager.setInstructionText("Invalid password");