Сделать экран неактивным, пока не будет нажата кнопка - PullRequest
3 голосов
/ 16 июня 2020

Я работаю над приложением kotlin. Моя активность находится в полноэкранном режиме, и я хочу создать кнопку, при которой экран не может выходить или возвращаться, или что-то еще, если не нажать кнопку. Как и в типе блокировки видеоплеера.

1 Ответ

1 голос
/ 16 июня 2020

Моя первая идея заключалась в том, чтобы сделать логическое isLocked и после нажатия кнопки изменить это значение на противоположное и переопределить все функции / события и т.д. c, которые вы хотели бы заблокировать, и если 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;
    }
}

Это отменит каждое событие, такое как нажатие кнопки возврата или изменение громкости

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...