2012-02-22 44 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