Java 如何禁用在onCreate、onPause中创建的单击式侦听器?(在安卓工作室)

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

在Android Studio中,当按下相应的按钮时,我试图打开第二个活动。但是,我无法从onPause访问我在“onCreate”中创建的侦听器。我采用的方法如下:

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);当按下按钮时,再次排队。因此,我需要检查在该行之前是否存在第二个活动。否则,该行将创建一个新活动,而不是转到已创建的活动。