[英]Constant listener for Boolean - Java Android
在我的Android應用程序中,我正在嘗試檢查布爾值是否已更改,以及是否已經執行了某些操作。 但這並不是經常檢查。 我相信我需要一個聽眾,但是我不知道如何組織它或放在哪里。 我在網上看過,實際上只能找到onClick
等,沒有布爾值。
這是我到目前為止的內容:
public boolean gameStartTouch = false;
public boolean titleVisible = true;
/*
public boolean isJumping = false;
public boolean isGrounded = false;
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_app_main);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
if (gameStartTouch == false) {
gameStartTouch = true;
titleVisible = false;
}
break;
}
return true;
}
這是偵聽器中需要執行的操作:
ImageView titleView = (ImageView) findViewById(R.id.titleImg);
ImageView startNotifView = (ImageView) findViewById(R.id.startNotifImg);
if (titleVisible == false) {
titleView.setVisibility(View.INVISIBLE);
startNotifView.setVisibility(View.INVISIBLE);
} else {
titleView.setVisibility(View.VISIBLE);
startNotifView.setVisibility(View.VISIBLE);
}
提前致謝。 在這些情況下,我找不到很多相關信息。
對您的代碼進行一些修改,像這樣進行管理
@Override
public boolean onTouchEvent(MotionEvent event) {
int eventaction = event.getAction();
switch (eventaction) {
case MotionEvent.ACTION_DOWN:
titleView.setVisibility(View.INVISIBLE);
startNotifView.setVisibility(View.INVISIBLE);
break;
}
return true;
}
我會將您的findViewById()
調用放在onCreate上,以避免不必要的資源獲取。 我唯一看到的是您實際上只交換了一次布爾值。 您是否還打算在第一次觸摸后將gameStartTouch重置為false並將titleVisible重置為true?
@fire_head您可以簡單地將titleView
和startNotifView
聲明為您的類私有成員。 像這樣在onCreate
方法中初始化它們:
ImageView titleView = (ImageView) findViewById(R.id.titleImg);
ImageView startNotifView = (ImageView) findViewById(R.id.starting);
並在handleGameStartTouch
方法中訪問它們。
抱歉,我無法將其發布為答案,因為我無法評論以上答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.