我正在做一个kotlin应用,我的活动是全屏的,我想做一个按钮,除非点击按钮,否则屏幕不能退出或返回或任何东西。就像视频播放器锁定类型的按钮一样。
我的第一个想法是使布尔值 isLocked
点击按钮后,将此值改为相反的值,并覆盖所有你想锁定的功能事件等,如果 isLocked
是真的,只是不要执行它们。下面是一个简单的代码,我锁定了后退按钮(在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;
}
}
这将取消每一个事件,比如点击后退按钮或改变音量。