Smi*_*dia -1 android onitemclicklistener android-recyclerview
我的工作RecyclerView onItemClick和onItemLongClick,工作都不错,但问题是onItemLongClick还要求onItemClick.
这是我的适配器代码:
package Adaptor;
import android.annotation.SuppressLint;
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.wings.example.recycleview.MainActivity;
import com.wings.example.recycleview.R;
import java.util.ArrayList;
public class SampleAdapter extends RecyclerView.Adapter<SampleAdapter.ViewHolder> {
Context context;
private ArrayList<String> arrayList;
private static onClickListner onclicklistner;
public SampleAdapter(Context context) {
this.context = context;
arrayList = MainActivity.arrayList;
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
TextView txt_pos;
SampleAdapter sampleAdapter;
public ViewHolder(View itemView, SampleAdapter sampleAdapter) {
super(itemView);
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
txt_pos = (TextView) itemView.findViewById(R.id.txt_pos);
this.sampleAdapter = sampleAdapter;
itemView.setOnClickListener(this);
}
@Override
public void onClick(View v) {
onclicklistner.onItemClick(getAdapterPosition(), v);
}
@Override
public boolean onLongClick(View v) {
onclicklistner.onItemLongClick(getAdapterPosition(), v);
return false;
}
}
public void setOnItemClickListener(onClickListner onclicklistner) {
SampleAdapter.onclicklistner = onclicklistner;
}
public interface onClickListner {
void onItemClick(int position, View v);
void onItemLongClick(int position, View v);
}
@Override
public int getItemCount() {
return arrayList.size();
}
@Override
public int getItemViewType(int position) {
return position;
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
viewHolder.txt_pos.setText(arrayList.get(position));
}
@SuppressLint("InflateParams")
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int position) {
View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.custom_recycler_row_sample, viewGroup, false);
return new ViewHolder(view, this);
}
}
Run Code Online (Sandbox Code Playgroud)
我用它来称呼它:
sampleAdapter.setOnItemClickListener(new SampleAdapter.onClickListner() {
@Override
public void onItemClick(int position, View v) {
Log.e(TAG+"ON ITEM CLICK", position + "");
}
@Override
public void onItemLongClick(int position, View v) {
Log.e(TAG + "ON ITEM LONG CLICK", position + "");
}
});
Run Code Online (Sandbox Code Playgroud)
而且我也尝试了但同样的问题是: 小机器人的onitemclick代码
任何帮助将受到高度赞赏.
返回true将告诉系统我已经处理了你不必担心的事件,否则你Onclick会发火.
@Override
public boolean onLongClick(View v) {
onclicklistner.onItemLongClick(getAdapterPosition(), v);
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1105 次 |
| 最近记录: |