下面列出了android.view.View#OnLongClickListener ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void addOnItemLongClickListener(@NonNull final VH holder){
if (!itemLongClickEnable) return;
if (onLongClickListener == null){
onLongClickListener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
int position = (int) v.getTag();
if (onItemLongClickListener != null) {
return onItemLongClickListener.onItemLongClick(v, position, getItemAt(position), getItemViewType(position));
}
return false;
}
};
}
holder.itemView.setOnLongClickListener(onLongClickListener);
}
private View.OnLongClickListener getDefaultChildLongClickListener() {
if (defaultChildLongClickListener == null)
defaultChildLongClickListener = new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
ensureBoundedRecyclerView();
View itemView = recyclerView.findContainingItemView(v);
int position = itemView == null ? -1 : recyclerView.getChildAdapterPosition(itemView) - getCustomHeaderSize();
int viewType = getItemViewType(position);
switch (viewType) {
case TYPE_HEADER:
return getOnItemChildLongClickListener() != null && getOnItemChildLongClickListener().onHeaderItemChildLongClick(v, position, getHeaderAt(position));
case TYPE_DATA:
return getOnItemChildLongClickListener() != null && getOnItemChildLongClickListener().onDataItemChildLongClick(v, position, getDataAt(position));
case TYPE_FOOTER:
return getOnItemChildLongClickListener() != null && getOnItemChildLongClickListener().onFooterItemChildLongClick(v, position, getFooterAt(position));
case TYPE_EMPTY:
return getOnItemChildLongClickListener() != null && getOnItemChildLongClickListener().onEmptyItemChildLongClick(v, position, getEmptyAt(position));
case UNKNOWN:
default:
return false;
}
}
};
return defaultChildLongClickListener;
}
private View.OnLongClickListener getMessageLongClickListener(final Wrapper<MESSAGE> wrapper) {
return new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
if (selectionListener == null) {
notifyMessageLongClicked(wrapper.item);
notifyMessageViewLongClicked(view, wrapper.item);
return true;
} else {
isSelectionModeEnabled = true;
view.performClick();
return true;
}
}
};
}
public static View.OnLongClickListener getLongClick(final Item item, final DragAction.Action action, final DesktopCallback desktopCallback) {
return new View.OnLongClickListener() {
@Override
public boolean onLongClick(View view) {
if (Setup.appSettings().getDesktopLock()) {
return false;
}
if (Setup.appSettings().getGestureFeedback()) {
Tool.vibrate(view);
}
startDrag(view, item, action, desktopCallback);
return true;
}
};
}
/**
* 设置长按事件
* @param activity {@link Activity}
* @param onLongClickListener {@link View.OnLongClickListener}
* @param viewIds View id 数组
* @return {@code true} success, {@code false} fail
*/
public static boolean setOnLongClicks(final Activity activity, final View.OnLongClickListener onLongClickListener, @IdRes final int... viewIds) {
if (activity != null && onLongClickListener != null && viewIds != null) {
for (int i = 0, len = viewIds.length; i < len; i++) {
View findView = ViewUtils.findViewById(activity, viewIds[i]);
if (findView != null) {
findView.setOnLongClickListener(onLongClickListener);
}
}
return true;
}
return false;
}
public GroupedRecyclerViewItemListItemView(
@Nullable final Drawable icon,
@NonNull final CharSequence text,
final boolean hideDivider,
@Nullable final View.OnClickListener clickListener,
@Nullable final View.OnLongClickListener longClickListener) {
mIcon = icon;
mText = text;
mHideDivider = hideDivider;
mClickListener = clickListener;
mLongClickListener = longClickListener;
}
public ViewHolder setOnLongClickListener(int viewId,
View.OnLongClickListener listener)
{
View view = getView(viewId);
view.setOnLongClickListener(listener);
return this;
}
/**
* Get the OnLongClickListener to call when the user long-click on the item.
* @param adapterHasListener true if the calling adapter has a global listener on the item.
* @return the long-click listener to be put into the view.
*/
public View.OnLongClickListener getOnLongClickListener(boolean adapterHasListener) {
if (isLongClickable() && adapterHasListener) {
if (mViewHolderLongClickListener == null) {
mViewHolderLongClickListener = new ViewHolderLongClickListener<>(this);
}
} else {
mViewHolderLongClickListener = null;
}
return mViewHolderLongClickListener;
}
@Override
public void setOnLongClickListener(View.OnLongClickListener l) {
mAttacher.setOnLongClickListener(l);
}
public abstract boolean onTouch(View view, MotionEvent motionEvent,
View.OnClickListener onClickListener,
View.OnLongClickListener onLongClickListener);
public void setOnLongClickListener(int res_id, View.OnLongClickListener onLongClickListener) {
getView(res_id).setOnLongClickListener(onLongClickListener);
}
/**
* use {@link BaldButton#setOnLongClickListener(android.view.View.OnLongClickListener)} instead
*/
@Deprecated
@Override
public void setOnLongClickListener(View.OnLongClickListener onLongClickListener) {
throw new RuntimeException("use setOnClickListener(View.OnClickListener onClickListener) instead");
}
@Override public void setOnLongClickListener(View.OnLongClickListener listener) {
mLongClickListener = listener;
}
public Builder setOnLongClickListener(View.OnLongClickListener onLongClickListener) {
this.onLongClickListener = onLongClickListener;
return this;
}
public void setOnLongClickListener(View.OnLongClickListener onLongClickListener) {
this.outerOnLongClickListener = onLongClickListener;
}
public void setOnLongClickListener(View.OnLongClickListener onLongClickListener) {
this.outerOnLongClickListener = onLongClickListener;
}
/**
* 设置长按事件
* @param onLongClickListener {@link View.OnLongClickListener}
* @param views View 数组
* @return {@link ViewHelper}
*/
public ViewHelper setOnLongClicks(final View.OnLongClickListener onLongClickListener, final View... views) {
ListenerUtils.setOnLongClicks(onLongClickListener, views);
return this;
}
/**
* Register a callback to be invoked when the Photo displayed by this view is long-pressed.
*
* @param listener - Listener to be registered.
*/
void setOnLongClickListener(View.OnLongClickListener listener);
/**
* Register a callback to be invoked when the Photo displayed by this view is long-pressed.
*
* @param listener - Listener to be registered.
*/
void setOnLongClickListener(View.OnLongClickListener listener);
/**
* Register a callback to be invoked when the Photo displayed by this view is long-pressed.
*
* @param listener - Listener to be registered.
*/
void setOnLongClickListener(View.OnLongClickListener listener);