我正在使用Kotlin应用程序,我的 Activity 处于全屏状态,我想创建一个按钮,除非单击该按钮,否则无法退出或返回屏幕。就像视频播放器的锁定类型一样。
最佳答案
我的第一个想法是制作 bool(boolean) isLocked
,然后在单击按钮后将此值更改为相反值,并覆盖您想锁定的所有函数/事件等,如果isLocked
为true,则不要执行它们。
这是我锁定后退按钮的简单代码(在Java中,但可以轻松将其更改为Kotlin)
public class MainActivity extends AppCompatActivity
{
boolean isLocked = false;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
isLocked ^= true;
System.out.println(isLocked);
}
});
}
@Override
public void onBackPressed()
{
if (!isLocked)
{
super.onBackPressed();
}
}
}
我认为您可以通过类似的方式锁定每个事件。
您还可以进行如下操作:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (!isLocked)
{
return super.onKeyDown(keyCode, event);
}
else
{
return true;
}
}
这将取消所有事件,例如单击“后退”按钮或更改音量