2011-10-11 101 views
0

我在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的全部執行()方法後鎖定,

任何猜我怎麼能做到這一點。

+0

什麼是工作,不是什麼呢? –

+0

只有當我點擊那個按鈕 –

+0

它正在工作,而不點擊按鈕。 – Debarati

回答

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

對不起,沒有結果 –

+0

按鈕點擊工作與否 –

+0

按鈕點擊工作時,當我點擊,但通過btn.performClick()沒有影響發生 –

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();呼叫onCreate()功能doSth()和。

,並修改onClickListener爲:

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

這應該解決您的問題。

+0

不,這個問題仍然存在 –

+2

不,它絕對有效;問題在於你的編碼實現。 –

1

刪除此行:

btn.performClick(); 
+0

通過刪除這個,沒有任何反應 –

+1

然後@gt_ebuddy滿足你的問題,除非你實現完全錯誤。 –