首页 > 解决方案 > 如何防止用户退出活动?

问题描述

所以我现在正在用 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”-> 已打开

我希望我的帖子听起来不会太愚蠢,正如我之前所说,我不是真正的程序员,这只是我的一个爱好。

在此先感谢您的时间!

标签: javaandroid-studioandroid-alertdialog

解决方案


正如这篇文章中所解释的: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>


推荐阅读