Java 如何禁用在onCreate、onPause中创建的单击式侦听器?(在安卓工作室)
在Android Studio中,当按下相应的按钮时,我试图打开第二个活动。但是,我无法从onPause访问我在“onCreate”中创建的侦听器。我采用的方法如下:Java 如何禁用在onCreate、onPause中创建的单击式侦听器?(在安卓工作室),java,android-studio,Java,Android Studio,在Android Studio中,当按下相应的按钮时,我试图打开第二个活动。但是,我无法从onPause访问我在“onCreate”中创建的侦听器。我采用的方法如下: public class MainActivity extends Activity { private View.OnClickListener openSecondPage = new View.OnClickListener() { @Override public void onC
public class MainActivity extends Activity {
private View.OnClickListener openSecondPage = new View.OnClickListener() {
@Override
public void onClick(View v) {
Button button_newPage = findViewById(R.id.button_newpage);
button_newPage.setText("Clicked");
Intent secondPage = new Intent(getApplicationContext(), SecondActivity.class );
startActivity(secondPage);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button_newPage = findViewById(R.id.button_newpage);
button_newPage.setOnClickListener(openSecondPage);
}
public void onPause(){
super.onPause();
Button button_newPage = findViewById(R.id.button_newpage);
//Destroy the on click listener
button_newPage.setOnClickListener(null);
}
}
此外,用户将能够返回到主要活动,然后再次返回到第二个活动。在这种情况下,我不想打开一个新的活动。相反,我想打开以前创建的活动。对于这种情况,我应该创建一个onResume()
方法,并在该方法中调用startActivity(secondPage)
。但是在这种情况下,由于第二页
是在onStart
中声明的,因此我将无法在onResume
中使用。我如何处理这种情况?
所以实际上有两个问题。。很抱歉,我不想为它打开两个不同的问题。Put
Button Button\u newPage=findViewById(R.id.Button\u newPage)代码>和按钮\u newPage.setOnClickListener(openSecondPage)代码>在onResume中而不是onCreate中,如下所示:
@Override
protected void onResume() {
super.onResume();
Button button_newPage = findViewById(R.id.button_newpage);
button_newPage.setOnClickListener(openSecondPage);
}
这至少可以解决你的部分问题。谢谢你的回答。但在这种情况下,第一次启动程序,我能进入“第二页”吗?因为onCreate中不再有点击监听器。您熟悉吗?在onCreate之后,您的程序将始终通过onResume方法运行(并执行其中的任何代码)。感谢您,这一点现在很有意义,但再一次,它将调用Intent secondPage=newintent(getApplicationContext(),SecondActivity.class);当按下按钮时,再次排队。因此,我需要检查在该行之前是否存在第二个活动。否则,该行将创建一个新活动,而不是转到已创建的活动。