我尝试在boolean
中使用Activity
变量。我尝试使用boolean
和true
来检查false
值。但我只得到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
?
我想用两种模式显示一个Activity
。如果是“保存模式”,我想隐藏一个按钮。如果它是“编辑模式”,则该按钮应该是可见的。
如果点击我的活动,我想要boolean
变量true
。所以我尝试将boolean
变量作为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
值,即“编辑模式”。当我点击'eventView'时,我只想将它作为“编辑模式”。我有事件并添加按钮以转到“添加事件”活动。如果从“添加”按钮开始,它应该是“保存模式”,或者如果使用“eventView”,它应该是“编辑模式”。
怎么做?
答案 0 :(得分:1)
否定你的第一张支票,你应该是好的
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。因为editMode是一个布尔值(基本类型),所以它不会以null开头。这意味着它需要一个默认值,在这种情况下该值为false。你的代码说如果editMode是真的log"编辑模式"否则记录"保存模式
答案 1 :(得分:1)
您声明了变量editMode
,但您尚未为其分配任何内容,因此它始终为真。要从putExtra()
获取数据,您必须在您开始的活动中致电Intent.get__Extra()
。
在add event activity
中,写下:
private boolean editMode;
Intent i = getIntent();
editMode = i.getBooleanExtra("EditMode", true);
if(editMode)
....