我想用onlongclick事件做一个开关。我很困惑,每当我写if-else语句的时候,总是会出现一个错误
chip_beard = (Chip) findViewById(R.id.chip_beard);
chip_beard.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v){
ImageView Body = (ImageView) findViewById(R.id.Body);
if (Body.getVisibility(View.INVISIBLE)){
Body.setVisibility(View.VISIBLE);
} else if (Body.getVisibility(View.VISIBLE)){
Body.setVisibility(INVISIBLE);
}
return false;
}
});`
这是我想放在if-else语句中的代码。
在安卓工作室中,我是个新手,所以谢谢你的帮助。
你比较的可见性是错误的,因为 getVisibility
毫无争议
将你的代码改为
chip_beard = (Chip) findViewById(R.id.chip_beard);
chip_beard.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v){
ImageView Body = (ImageView) findViewById(R.id.Body);
if (Body.getVisibility() == View.INVISIBLE){
Body.setVisibility(View.VISIBLE);
} else if (Body.getVisibility() == View.VISIBLE){
Body.setVisibility(INVISIBLE);
}
return false;
}
});`
一个好的做法是创建一个单独的方法,并在按钮内部调用。
itemToClick.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//Call your method here
yourMethod();
return true; }});
Private void yourMethod(){
//Your logic here
}