[英]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)
。 但在這種情況下,由於secondPage
在onStart
中聲明,我將無法在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.