这是我的代码的一部分:
if(user.getUserID().equals(thisLike.getUserID())) {
Log.i("On MARKER click", "Equal User ID!");
Toast.makeText(getApplicationContext(), R.string.longpress, Toast.LENGTH_SHORT).show();
markerImage.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
Log.i("On MARKER click", "onLongClick HAPPENS!");
if(user.getUserID().equals(thisLike.getUserID())) {
Log.i("On MARKER click", "Equal User ID!");
openContextMenu(markerImage);
return true;
} else {
Log.i("On MARKER click", "Not equal User ID!!");
return false;
}
}
});
} else {
Log.i("On MARKER click", "F...off!");
return false;
}
它描述了onMarkerClick
GoogleMap
Marker
内的一些行为。
我想要发生的事情是ContextMenu
仅在user.getUserID()
等于thisLike.getUserID()
时才会打开
我尝试在其他两个语句中添加markerImage.setOnLongClickListener(null);
。没工作..
答案 0 :(得分:1)
虽然此解决方案并不完美......我已将if-check添加到onCreateContextMenu
,如下所示:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
if(user.getUserID().equals(thisLike.getUserID())) {
menu.setHeaderTitle("Image options");
getMenuInflater().inflate(R.menu.context_menu_image, menu);
}
}
终于尊重if-check,但我仍然想知道为什么onLongClick
的if-check没有帮助。
答案 1 :(得分:0)
应用以下逻辑。
if (false){
setOnLongClickListener(null)
} else{
// Implement your own listener
}