簡體   English   中英

Android正確使用布爾值

[英]Android use booleans correctly

我目前在Android中使用booleans時遇到一個奇怪的問題。 我首先定義了布爾值,但是當我使用它時,它不會返回正確的值。 采取以下代碼:

public class Prompt3 extends Activity {

    boolean item1connect;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_prompt3);

        touchLayout.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {


                    if (event.getAction() == MotionEvent.ACTION_DOWN){

                        if (Math.abs(startcoordinatesX - itemvar1x)<touchAllowance && Math.abs(startcoordinatesY - itemvar1y)<touchAllowance) {
                            item1connect = true;
                        }

                        if (item1connect = true) {
                            indic1.setBackground(getResources().getDrawable(R.drawable.ring_filled_standard));
                        }
                    }

            }

    });

}

當我執行上述操作時, indic1.setBackground將設置setBackground ,而不管是否(Math.abs(startcoordinatesX - itemvar1x)<touchAllowance && Math.abs(startcoordinatesY - itemvar1y)<touchAllowance) 但是,當我嘗試

                        if (Math.abs(startcoordinatesX - itemvar1x)<touchAllowance && Math.abs(startcoordinatesY - itemvar1y)<touchAllowance) {
                            indic1.setBackground(getResources().getDrawable(R.drawable.ring_filled_standard);
                        }

並完全繞過boolean item1connect ,代碼工作正常。 包含boolean時,如何解決此問題?

提前致謝

你寫了

if (item1connect = true) {...}

這是一項分配,而不是比較。 該賦值的返回值為true因此看起來不起作用。 寫吧

if (item1connect == true) {...}

甚至,甚至

if (item1connect) {...}

您正在執行的操作是告訴itemiconnect將其值設置為true 使用==運算符比較項目是對還是錯,或者只是將itemiconnect放在括號中,它將為您檢查。

編輯:您的代碼說

if (item1connect = true) {
          indic1.setBackground(getResources().getDrawable(R.drawable.ring_filled_standard));
}

您可以將其更改為比較器

if (item1connect == true) {
      indic1.setBackground(getResources().getDrawable(R.drawable.ring_filled_standard));
}

或更好,但僅使用隱含的真實功能

if (item1connect) {
      indic1.setBackground(getResources().getDrawable(R.drawable.ring_filled_standard));
}

Java允許您在“ if”語句中簡單地調用布爾值,因為它表示一個真值或假值。

暫無
暫無

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

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