Skip to content

Commit

Permalink
增加OnItemLongClickListener接口
Browse files Browse the repository at this point in the history
  • Loading branch information
lzx authored and lzx committed Nov 11, 2016
1 parent 831668d commit c234ea6
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,8 @@
import android.view.View;

/**
* Click and LongClick
* Click
*/
public interface OnItemClickListener {
void onItemClick(View view, int position);
void onItemLongClick(View view , int position);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.github.jdsjlzx.interfaces;

import android.view.View;

/**
* LongClick
*/

public interface OnItemLongClickListener {
void onItemLongClick(View view , int position);
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.view.ViewGroup;

import com.github.jdsjlzx.interfaces.OnItemClickListener;
import com.github.jdsjlzx.interfaces.OnItemLongClickListener;
import com.github.jdsjlzx.view.ArrowRefreshHeader;

import java.util.ArrayList;
Expand All @@ -27,6 +28,7 @@ public class LRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.View
private ArrowRefreshHeader mRefreshHeader;

private OnItemClickListener mOnItemClickListener;
private OnItemLongClickListener mOnItemLongClickListener;

/**
* RecyclerView使用的,真正的Adapter
Expand Down Expand Up @@ -177,11 +179,14 @@ public void onClick(View v)
}
});

}

if (mOnItemLongClickListener != null) {
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v)
{
mOnItemClickListener.onItemLongClick(holder.itemView, adjPosition);
mOnItemLongClickListener.onItemLongClick(holder.itemView, adjPosition);
return true;
}
});
Expand Down Expand Up @@ -329,9 +334,14 @@ public int getAdapterPosition(boolean isCallback, int position) {
return -1;
}

public void setOnItemClickListener(OnItemClickListener mOnItemClickListener)
public void setOnItemClickListener(OnItemClickListener itemClickListener)
{
this.mOnItemClickListener = itemClickListener;
}

public void setOnItemLongClickListener(OnItemLongClickListener itemLongClickListener)
{
this.mOnItemClickListener = mOnItemClickListener;
this.mOnItemLongClickListener = itemLongClickListener;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import android.view.ViewGroup;

import com.github.jdsjlzx.interfaces.OnItemClickListener;
import com.github.jdsjlzx.interfaces.OnItemLongClickListener;

import java.util.ArrayList;
import java.util.List;
Expand All @@ -24,6 +25,7 @@ public class LuRecyclerViewAdapter extends RecyclerView.Adapter<RecyclerView.Vie


private OnItemClickListener mOnItemClickListener;
private OnItemLongClickListener mOnItemLongClickListener;

/**
* RecyclerView使用的,真正的Adapter
Expand Down Expand Up @@ -206,14 +208,17 @@ public void onClick(View v)
}
});

holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v)
{
mOnItemClickListener.onItemLongClick(holder.itemView, adjPosition);
return true;
}
});
if (mOnItemLongClickListener != null) {
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v)
{
mOnItemLongClickListener.onItemLongClick(holder.itemView, adjPosition);
return true;
}
});
}

}

}
Expand Down Expand Up @@ -357,4 +362,10 @@ public void setOnItemClickListener(OnItemClickListener mOnItemClickListener)
this.mOnItemClickListener = mOnItemClickListener;
}


public void setOnItemLongClickListener(OnItemLongClickListener itemLongClickListener)
{
this.mOnItemLongClickListener = itemLongClickListener;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import android.widget.TextView;

import com.github.jdsjlzx.interfaces.OnItemClickListener;
import com.github.jdsjlzx.interfaces.OnItemLongClickListener;
import com.github.jdsjlzx.interfaces.OnLoadMoreListener;
import com.github.jdsjlzx.interfaces.OnRefreshListener;
import com.github.jdsjlzx.recyclerview.LRecyclerView;
Expand Down Expand Up @@ -145,6 +146,9 @@ public void onItemClick(View view, int position) {
AppToast.showShortText(EndlessLinearLayoutActivity.this, item.title);
}

});

mLRecyclerViewAdapter.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public void onItemLongClick(View view, int position) {
ItemModel item = mDataAdapter.getDataList().get(position);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import android.widget.TextView;

import com.github.jdsjlzx.interfaces.OnItemClickListener;
import com.github.jdsjlzx.interfaces.OnItemLongClickListener;
import com.github.jdsjlzx.interfaces.OnLoadMoreListener;
import com.github.jdsjlzx.interfaces.OnRefreshListener;
import com.github.jdsjlzx.recyclerview.LRecyclerView;
Expand Down Expand Up @@ -145,14 +146,17 @@ public void onItemClick(View view, int position) {
ItemModel item = mDataAdapter.getDataList().get(position);
AppToast.showShortText(MulItemLinearLayoutActivity.this, item.title);
}
});

mLRecyclerViewAdapter.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public void onItemLongClick(View view, int position) {
ItemModel item = mDataAdapter.getDataList().get(position);
AppToast.showShortText(MulItemLinearLayoutActivity.this, "onItemLongClick - " + item.title);
}
});


}

private void notifyDataSetChanged() {
Expand Down
4 changes: 4 additions & 0 deletions app/src/main/java/com/lzx/demo/ui/PartialRefreshActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import com.bumptech.glide.Glide;
import com.github.jdsjlzx.interfaces.OnItemClickListener;
import com.github.jdsjlzx.interfaces.OnItemLongClickListener;
import com.github.jdsjlzx.recyclerview.LRecyclerView;
import com.github.jdsjlzx.recyclerview.LRecyclerViewAdapter;
import com.lzx.demo.R;
Expand Down Expand Up @@ -87,6 +88,9 @@ public void onItemClick(View view, int position) {
AppToast.showShortText(PartialRefreshActivity.this, item.title);
}

});

mLRecyclerViewAdapter.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public void onItemLongClick(View view, int position) {
ItemModel item = mDataAdapter.getDataList().get(position);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import android.widget.TextView;

import com.github.jdsjlzx.interfaces.OnItemClickListener;
import com.github.jdsjlzx.interfaces.OnItemLongClickListener;
import com.github.jdsjlzx.interfaces.OnLoadMoreListener;
import com.github.jdsjlzx.recyclerview.LuRecyclerView;
import com.github.jdsjlzx.recyclerview.LuRecyclerViewAdapter;
Expand Down Expand Up @@ -93,8 +94,7 @@ public void onCreate(Bundle savedInstanceState) {
mDataAdapter = new DataAdapter(this);
mDataAdapter.addAll(dataList);

mLRecyclerViewAdapter = new LuRecyclerViewAdapter(mDataAdapter);
mRecyclerView.setAdapter(mLRecyclerViewAdapter);
mLRecyclerViewAdapter = new LuRecyclerViewAdapter(mDataAdapter); mRecyclerView.setAdapter(mLRecyclerViewAdapter);

mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

Expand All @@ -108,6 +108,9 @@ public void onItemClick(View view, int position) {
AppToast.showShortText(SwipeRefreshLayoutActivity.this, item.title);
}

});

mLRecyclerViewAdapter.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public void onItemLongClick(View view, int position) {
ItemModel item = mDataAdapter.getDataList().get(position);
Expand Down

0 comments on commit c234ea6

Please sign in to comment.