Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么布尔变量在false上不显示任何结果?_Java_Android_Variables_Boolean - Fatal编程技术网

Java 为什么布尔变量在false上不显示任何结果?

Java 为什么布尔变量在false上不显示任何结果?,java,android,variables,boolean,Java,Android,Variables,Boolean,我已尝试在我的活动中使用布尔变量。如果true和false,我尝试使用boolean值进行检查。但我只得到了false的结果 private boolean editMode; if(editMode) //false { delete.setVisibility(View.INVISIBLE); Toast.makeText(getApplicationContext(),"Edit mode",Toast.LENGTH_LONG).show()

我已尝试在我的
活动中使用
布尔
变量。如果
true
false
,我尝试使用
boolean
值进行检查。但我只得到了
false
的结果

private boolean editMode;


if(editMode) //false
    {

        delete.setVisibility(View.INVISIBLE);

        Toast.makeText(getApplicationContext(),"Edit mode",Toast.LENGTH_LONG).show();
        Log.i("Log","Edit mode");
    }
else //true
    {
        Log.i("Log1","Save mode");
        Toast.makeText(getApplicationContext(),"Save mode",Toast.LENGTH_LONG).show();
    }
每次我得到“保存模式”。如何检查
true
false

我想用两种模式显示一个
活动
。如果是“保存模式”,我想隐藏一个按钮。如果是“编辑模式”,则按钮应可见

如果单击我的事件,我需要
布尔值
变量
true
。因此,我尝试将
布尔值
变量作为
真值
传递

eventView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            i = new Intent(getActivity(),AddEventActivity.class);
            editMode = true;
            i.putExtra("EditMode",editMode);
            startActivity(i);

        }
    });
所以现在每次它显示
true
值时,即“编辑模式”。我只希望在单击“事件视图”时将其设置为“编辑模式”。我有“事件”和“添加”按钮可转到“添加事件”活动。如果使用“添加”按钮,则应为“保存模式”,如果使用“事件视图”,则应为“编辑模式”


如何做到这一点

否定你的第一次检查,你应该表现良好

if(!editMode)//false
{

    delete.setVisibility(View.INVISIBLE);

    Toast.makeText(getApplicationContext(),"Edit mode",Toast.LENGTH_LONG).show();
    Log.i("Log","Edit mode");
}
else//true
{
    Log.i("Log1","Save mode");
    Toast.makeText(getApplicationContext(),"Save mode",Toast.LENGTH_LONG).show();
}

这意味着如果不是编辑模式。由于editMode是一个布尔值(一种基本类型),因此它不会以null开头。这意味着它需要一个默认值,在这种情况下,该值为false。您的代码显示如果editMode为true,则记录“editMode”,否则记录“Save mode

您声明变量
editMode
,但您尚未为其分配任何内容,因此它始终为true。若要从
putExtra()
获取数据,您必须在启动的活动中调用
Intent.get\u Extra()

在您的
添加事件活动
中,写下以下内容:

private boolean editMode;
Intent i = getIntent();
editMode = i.getBooleanExtra("EditMode", true);
if(editMode)
....

如果您使用的是保存模式,则变量为false…布尔值的默认值为false。我是否正确?@Sami Kuhmonen
If(editMode)//false
错误!这意味着:
If(editMode==true)//false
谢谢您的回答。请检查我编辑的问题。@AEMORALES1需要查看正在执行if检查的方法的定义。对不起,是哪种方法?@AEMORALES1如果正在执行if else,请查看@NoImNotNull的答案。我非常确定这将回答您的问题。是的,我已经完成了。但我正在获取always true。如果我单击“添加”按钮,我希望它为false。而不是事件。您的代码显示您在单击时将其设置为true。如果您希望false,请在“添加”按钮上将其设置为false