簡體   English   中英

如何在 onPause 中禁用 onCreate 中創建的 On Click Listener? (在 Android 工作室中)

[英]How to disable On Click Listener created in onCreate, in onPause? (In Android Studio)

在 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);
    }
    }

用戶也可以回到主要活動,然后 go 再次回到第二個活動。 在那種情況下,我不想打開一個新活動。 相反,我想打開以前創建的活動。 對於這種情況,我應該創建一個onResume()方法,然后調用startActivity(secondPage) 但在這種情況下,由於secondPageonStart中聲明,我將無法在onResume中使用。 我該如何處理這種情況? 所以實際上有 2 個問題.. 抱歉,我不想為此打開 2 個不同的問題。

放置Button button_newPage = findViewById(R.id.button_newpage); button_newPage.setOnClickListener(openSecondPage); 在 onResume 而不是 onCreate 里面,像這樣:

 @Override
    protected void onResume() {
        super.onResume();
        Button button_newPage = findViewById(R.id.button_newpage);
        button_newPage.setOnClickListener(openSecondPage);

    }

那應該至少可以解決您的部分問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM