2011-09-24 46 views
1

以下是我的一個項目的基本分解概述。我想在onc​​reate之外的方法能夠點擊在oncreate中聲明的按鈕,但我不知道如何。單擊Android中oncreate外部方法的按鈕

這是我的代碼:我希望能夠從clickButton()的方法performClick()webButton,但它不起作用。如果這是不可能的,我會盡可能地知道如何開始試圖在點擊從方法clickButton()方法點擊按鈕時開始的意圖。

預先感謝您!

public class cphome extends Activity { 
    static final int check =111; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final Button webButton = (Button) findViewById(R.id.button1); 
     webButton.setOnClickListener(new View.OnClickListener() { 

       @Override 
       public void onClick(View view) { 
        Intent myIntent = new Intent(view.getContext(), web.class); 
        startActivity(myIntent); 
       } 

      }); 





    } 
    public void clickbutton(){ 
     webButton.performClick(); 
    } 
} 
+0

爲什麼這不起作用?當你調用'clickbutton()'時你試過調試int'onClick(View view)'嗎? – Knickedi

+0

爲什麼不在你的類的'webButton'字段中創建'onCreate'方法中的變量? –

+0

我試過你說的Knickedi,但我得到的錯誤「webButton無法解決」 – Peter

回答

1

這是一個非常奇怪的模式。我建議你這樣做,而不是:

public class cphome extends Activity { 
    static final int check =111; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final Button webButton = (Button) findViewById(R.id.button1); 
     webButton.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View view) { 
        performClickAction(); 
       } 
      }); 

    } 

    public void performClickAction(){ 
     Intent myIntent = new Intent(this, web.class); 
     startActivity(myIntent); 
    } 
} 
+0

我試過,但後來我從新的意圖「視圖無法解決」 – Peter

+0

我的錯誤從「視圖」得到錯誤。 'view.getContext()'沒有任何意義了(我真的希望你明白爲什麼)。如果您複製並粘貼,則會發生這種情況;-)。我更新了'performClickAction'。 – Knickedi