我想要使用回收視圖和處理單擊事件。我已閱讀了各種處理onClick事件的方法,如回收查看項目,如:靜態ViewHolder和獲取上下文時使用RecyclerView
- 定義視圖持有者類本身內的點擊偵聽器。
- 定義onCreateViewHolder()中的點擊偵聽器。
- 定義一個接口,然後從那裏走(似乎太多的工作)。
所以我的第一個問題是哪個選項更好? 我目前正在使用第一種方法,如果在視圖持有者類本身中定義點擊偵聽器是要走的路,那麼如何使用適配器的上下文作爲視圖持有者類是靜態的。
基本上,我想要一個靜態視圖持有者和點擊事件,打開一個新的活動,我需要的上下文。
更新:添加適配器和ViewHolder代碼。
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context mContext;
private List<Job> jobs;
public MyAdapter(Context context, List<Job> jobs) {
mContext = context;
this.jobs = jobs;
}
@Override
public MyAdapter.ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View itemLayoutView = LayoutInflater.from(viewGroup.getContext())
.inflate(R.layout.list_item, viewGroup, false);
itemLayoutView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, MyActivity.class);
mContext.startActivity(intent);
}
});
return new ViewHolder(itemLayoutView);
}
@Override
public void onBindViewHolder(WorkExperienceAdapter.ViewHolder viewHolder, int i) {
//bindViewHolder code
}
}
@Override
public int getItemCount() {
return jobs.size();
}
public static class ViewHolder extends RecyclerView.ViewHolder {
@InjectView(R.id.current)
TextView mCurrent;
public ViewHolder(View itemView) {
super(itemView);
ButterKnife.inject(this, itemView);
}
}
}
你的第一個問題,哪種方法更好,將主要基於產量輿論答案,這是不適合SO格式。 –
是的,但我想知道在比較前兩種方法時是否存在性能差異。 – akshayt23