- RecyclerView做爲一個新組件,在定製樣式的時候極其靈活和簡單,ListView大有被拋棄的態勢,不過RecyclerView可能在樣式方面的靈活性,致使其在其餘方面須要親自動手設置的方面略微複雜,點擊事件就是其中一項,不過假如掌握的話,RecyclerView絕對會發揮巨大的做用的。 仿照ListView.setOnItemClickListener的寫法,咱們在RecyclerView.Adapter內部定義一個內部類,來做爲對外展現的接口。
public class Adpater extends RecyclerView.Adapter implements View.OnClickListener
{
public static interface OnItemClickListener{
/*position此處是每個Item所在的位置,做爲Tag*/
public void setOnItemClick(View v,int position);
};
//
private OnItemClickListener listener;
/*暴露給外部的接口,給內部類的對象賦值*/
public void setOnItemClickListener(OnItemClickListener listener)
{
this.listener = listener;
}
@Override
public void onBindViewHolder(RecyclerViewHolder holder, final int position) {
/*爲每個Item設置一個tag*/
holder.itemView.setTag(position);
}
@Override
public RecyclerViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(mContext).inflate(R.layout.adapter_employ_item,parent,false);
/*設置每個Item的點擊事件*/
view.setOnClickListener(this);
return new RecyclerViewHolder(view);
}
//點擊事件觸發,調用實現接口的方法
@Override
public void Onclick(View v)
{
if (listener!=null) {
listener.setOnItemClick(v,v.getTag);
}
}
public class RecyclerViewHolder extends RecyclerView.ViewHolder{
public RecyclerViewHolder(View itemView) {
super(itemView);
}
}
}
相關連接,同時強力推薦此網站學習androidhtml