按钮单击事件未执行

时间:2011-10-11 06:57:07

标签: android

我在Activity类

的onCreate()方法中编写了以下代码
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()方法后它会锁定,

我猜怎么做到这一点。

3 个答案:

答案 0 :(得分:5)

试试这个

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();
        }
    });

答案 1 :(得分: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();
            }
        });

这可以解决您的问题。

答案 2 :(得分:1)

删除此行:

btn.performClick();