Не удалось выполнить событие Click Click

Я написал следующий код в методе onCreate() класса Activity

Button btn=(Button)findViewById(R.id.button1);
        btn.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v) 
            {
                WindowManager.LayoutParams params = getWindow().getAttributes();
                params.screenBrightness = 0;
                getWindow().setAttributes(params);
                Toast.makeText(v.getContext(),"Button Clicked",Toast.LENGTH_LONG).show();
            }
        });
        btn.performClick();

Но проблема в том, что действие на кнопку не происходит, но если я нажму на эту кнопку, это действие будет выполнено.

Я хочу заблокировать экран, используя этот код, но он блокируется после полного выполнения метода onCreate(),

Любая догадка, как я могу это сделать.

Ответ 1

попробуйте это

final Button backto_main = (Button) findViewById(R.id.back3x3); 
    backto_main.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {                 
            //add your code here..
            WindowManager.LayoutParams params = getWindow().getAttributes();
            params.screenBrightness = 0;
            getWindow().setAttributes(params);
            Toast.makeText(v.getContext(),"Button Clicked",Toast.LENGTH_LONG).show();
        }
    });

Ответ 2

Мое предложение

Сделайте function, переместив следующие коды:

 private void doSth(){
     WindowManager.LayoutParams params = getWindow().getAttributes();
     params.screenBrightness = 0;
     getWindow().setAttributes(params);
     Toast.makeText(v.getContext(),"Button Clicked",Toast.LENGTH_LONG).show();
}

И вместо выполнения btn.performClick(); вызовите функцию doSth() в onCreate().

и измените свой onClickListener как:

btn.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v) 
            {
                doSth();
            }
        });

Это должно решить вашу проблему.

Ответ 3

Удалите эту строку:

btn.performClick();