Java Android正确使用布尔值

Java Android正确使用布尔值,java,android,Java,Android,在android中使用booleans时,我目前遇到了一个奇怪的问题。我首先定义布尔值,但当我使用它时,它不会返回正确的值。以下面的代码为例: public class Prompt3 extends Activity { boolean item1connect; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceSta

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

            }

    });

}
同时绕过
布尔值
项1连接
,代码工作正常。如何在包含
布尔值的同时修复此问题


提前感谢

您正在做的是告诉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”语句中简单地调用布尔值,因为它表示真值或假值。

您所做的是告诉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”语句中简单地调用布尔值,因为它表示真值或假值。

您编写的

if (item1connect = true) {...}
这是作业,不是比较。此赋值的返回值为
true
,因此它看起来不起作用。只要写

if (item1connect == true) {...}
甚至,简单地说

if (item1connect) {...}
你写的

if (item1connect = true) {...}
这是作业,不是比较。此赋值的返回值为
true
,因此它看起来不起作用。只要写

if (item1connect == true) {...}
甚至,简单地说

if (item1connect) {...}

你错过了一个“==”!!如果(item1connect=true)
,您正在更改ifError比较语句中的值。如果(item1connect==true)使用
if(item1connect==true)
来代替。另外,以任何方式使用
item1connect==true都是多余的。您可以将
item1connect
放在
if
语句中。您会错过一个“==”!!如果(item1connect=true)
,您正在更改ifError比较语句中的值。如果(item1connect==true)使用
if(item1connect==true)
来代替。另外,以任何方式使用
item1connect==true都是多余的。您可以将
item1connect
放在
if
语句中。当我尝试此操作时,我得到错误“Syntax error on token”==”,invalid AssignmentOperator“@user3616949 use
if(item1connect)
对不起,我的意思是它在我的第二条语句中起作用,但在我的第一条语句中我写了
if(…){item1connect==true;}
,那是我出错的地方哦,等等,我是不是把第一个留在原处了<代码>如果(…){item1connect=true;}
更改了措辞以提高可读性。仅在指定的第二条语句上使用compare。您希望它在第一条语句上赋值。当我尝试此操作时,我得到错误“Syntax error on token”==,invalid AssignmentOperator“@user3616949 use
if(item1connect)
对不起,我的意思是它在我的第二条语句上起作用,但在我的第一条语句中,我写了
if(…){item1connect==true;}
,这就是我得到错误的地方等等,我是不是让第一个保持原样<代码>如果(…){item1connect=true;}更改了措辞以提高可读性。仅在指定的第二条语句上使用compare。您希望它在第一条语句中赋值。