java - 如何防止用户退出活动?
问题描述
所以我现在正在用 Java 在 Android Studio 中为我的公司编写一个应用程序(我在学童的日托中心工作),孩子们可以在其中签到。(从学校到我们这里,点击他们的名称,然后在列表中)
在一个活动的顶部有一个锁定按钮,因此如果按下它,用户将被禁止退出应用程序或返回上一个活动而不输入密码。所以孩子们不能乱来。
我已经在现有线程中搜索了一些时间,但我只找到了一个接近的解决方案,而且由于我不是真正的编码器,所以我不太了解它,只是基础知识。
我已经尝试过的:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_HOME) {
Log.i("TEST", "Home Button"); // here you'll have to do something to prevent the button to go to the home screen
return true;
}
return super.onKeyDown(keyCode, event);
和
public void onBackPressed(){
Toast.makeText(getApplicationContext(),"You Are Not Allowed to Exit the App", Toast.LENGTH_SHORT).show();
}
我知道我没有改变第一个,因为我不知道该怎么做,我找不到任何东西。
为了安全起见,我为按钮制作了一个 AlertDialog。我的一些同事对电子设备不太熟悉,需要万无一失。
到目前为止,这是我为 AlterDialog 编写的代码:
eGeoeffnet.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder myAlertBuilder2 = new AlertDialog.Builder(Anmeldung.this);
myAlertBuilder2.setTitle("Navigation sperren");
myAlertBuilder2.setMessage("Möchtest du die Navigation sperren?");
myAlertBuilder2.setPositiveButton("Ja", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
myAlertBuilder2.setNegativeButton("Nein", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(Anmeldung.this, "Du hast 'Nein' ausgewählt!", Toast.LENGTH_SHORT).show();
}
});
myAlertBuilder2.show();
}
});
有人可以告诉我需要在 positiveButton 区域中添加什么吗?
德语部分的翻译:
“导航 sperren” -> 锁定导航
"Möchtest du die Navigation sperren" -> 你想锁定导航吗?
“贾”-> 是的
“不” -> 否
“Du hast 'Nein' ausgewählt!” -> 你选择了“不”!
“Anmeldung” -> 登录
“Geoeffnet”-> 已打开
我希望我的帖子听起来不会太愚蠢,正如我之前所说,我不是真正的程序员,这只是我的一个爱好。
在此先感谢您的时间!
解决方案
正如这篇文章中所解释的:Android - Is It possible to disable click of home button。您可以将您的应用活动设置为 Home Launcher 活动。当按下 Home 按钮时,这会导致应用程序打开(保持打开状态)。
将此添加到要使用主页按钮保持打开/打开的活动的 manifest.xml 文件中。
<activity
android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" /> // add these
<category android:name="android.intent.category.LAUNCHER" /> // add these
<category android:name="android.intent.category.HOME" /> // add these
</intent-filter>
</activity>
推荐阅读
- javascript - React Navigation 扩展现有 Navigation 和 Screen 类以添加默认值
- r - 使用 grepl 删除数据框 R 中的行 - 方法问题
- javascript - 从javascript中的数组数组打印isduplicate
- python - 有没有办法在 DF 中找到一个列索引,它的整个值与使用 python 的另一列匹配
- asp.net-core - 全局错误处理程序,包括模型绑定器错误
- arrays - 使用 VBA 从集合的 JSON 集合创建数组
- javascript - 是否有一个javascript函数用于从一组集合中找到第一个包含一个元素的集合(如果该组存在这样的集合)?
- c# - 在 xamarin 表单上构建错误:Android
- scala - Scala 3 - 在一阶类型上提取包装器和 InverseMap 元组
- swift - 是否存在 firstIndex 在 Swift 中不返回可选项的情况?