onLongClick 只应在条件为真时发生
onLongClick should only happen if condition is true
这是我的代码的一部分:
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()
时打开
我试过在两个 else 语句中添加 markerImage.setOnLongClickListener(null);
。没用..
虽然此解决方案并不完美...我已将 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 没有帮助。
应用以下逻辑。
if (false){
setOnLongClickListener(null)
} else{
// Implement your own listener
}
这是我的代码的一部分:
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()
我试过在两个 else 语句中添加 markerImage.setOnLongClickListener(null);
。没用..
虽然此解决方案并不完美...我已将 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 没有帮助。
应用以下逻辑。
if (false){
setOnLongClickListener(null)
} else{
// Implement your own listener
}