2012-02-22 37 views
0

概述: 我在我的程序中有兩個頁面;主頁面和其他頁面。Android 2.3.3,Eclipse - 切換到其他佈局頁面後無法使用按鈕

在主頁上我有兩個按鈕;一個按鈕切換到另一個頁面,並且Add按鈕將一些值添加到一起。

在另一頁上,我有一個按鈕可以將我帶回主頁面。

目前我可以在兩個頁面之間切換而沒有問題。

我的問題: 當我第一次打開程序時,我可以點擊添加按鈕,它會將值加在一起。我可以繼續在兩個頁面之間切換,而不會出現問題。 但是,當我切換頁面後,當我點擊添加按鈕時,我的程序崩潰。

這是我的java文件。

package com.test; 
    import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.view.View.OnClickListener; 
    import android.widget.*; 

    public class AswitchActivity extends Activity { 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    Button enterScoreButton = (Button) findViewById(R.id.button1); 
    enterScoreButton.setOnClickListener(enterScoreButtonListener); 
} 

public OnClickListener enterScoreButtonListener = new OnClickListener() 
{ 
    @Override 
    public void onClick(View v1) 
    { 
    } 

    public int addEntireHole(int addedHoles) { 
     return (addedHoles); 
    } 
}; 

//This section goes from the main page to the other page 
public OnClickListener Startpage = new OnClickListener(){ 
    public void onClick(View v2){ 
    } 
}; 

public void onCreate(View view){ 
    Button buttonSwitchMain = (Button)findViewById(R.id.btnSwitch); 
    buttonSwitchMain.setOnClickListener(Startpage); 
    setContentView(R.layout.other); 
} 

//This section goes from the other page to the main page 

public OnClickListener otherpage = new OnClickListener(){ 
    public void onClick(View v3){ 
    } 
}; 


public void onCreate3(View view2){ 
    Button buttontoMain = (Button)findViewById(R.id.btnBack); 
    buttontoMain.setOnClickListener(otherpage); 
    setContentView(R.layout.main); 
} 

}

回答

0

在你的方法onCreate3,調用setContentView後,你應該再次致電

enterScoreButton.setOnClickListener(enterScoreButtonListener); 

+0

感謝您的回覆和建議。我嘗試了您的建議,並且EnterScoreButton似乎超出了範圍。所以然後我在它之前添加了按鈕enterScoreButton =(Button)findViewById(R.id.button1),它讓我編譯並運行,並沒有通過任何錯誤,但它似乎也沒有按下後執行任何代碼輸入按鈕... – Muldoon 2012-02-23 14:25:35

+0

那麼,這是我以前想知道的。當你點擊按鈕時,偵聽器的onClick方法被調用 - 但你的代碼不包含任何代碼。請嘗試添加Log.v(「」,「CLICKED」);並查看當您單擊按鈕時LogCat是否顯示消息。 – m1ntf4n 2012-02-23 14:55:56

+0

上面的例子是我的主程序的簡化版本;我試圖剝奪它只有最基本的要領。我以前不知道如何使用Log.v,但發現它非常有用。當我將Log.v放入onClick時,它確實顯示在LogCat中。我試過然後將Log.v複製到代碼的addEntireHole部分,並且它永遠不會被執行。我的印象(可能是錯誤的),因爲代碼是enterScoreButtonListener的一部分,它的一切內容將被執行。 – Muldoon 2012-02-23 17:05:01

0

我建議你使用意圖切換頁面,來解決這個問題。

+0

因爲我只是在學習,所以使用意圖切換頁面有什麼優勢? – Muldoon 2012-02-24 14:02:04

相關問題