Android 如何在单击导航抽屉中的RecyclerView中的项目后关闭导航抽屉
我有一个导航抽屉,里面有一个RecyclerView。单击RecyclerView中的项目时,我可以使用此RecyclerAdapter成功导航到所需的活动:Android 如何在单击导航抽屉中的RecyclerView中的项目后关闭导航抽屉,android,Android,我有一个导航抽屉,里面有一个RecyclerView。单击RecyclerView中的项目时,我可以使用此RecyclerAdapter成功导航到所需的活动: public class AdapterNavigation extends RecyclerView.Adapter<AdapterNavigation.Holder> { private List<NavigationItem> mItemList; private Context mCont
public class AdapterNavigation extends RecyclerView.Adapter<AdapterNavigation.Holder> {
private List<NavigationItem> mItemList;
private Context mContext;
//this class takes a context and a list of the items you want to populate into the recycler view
public AdapterNavigation(Context context, List<NavigationItem> itemList) {
mItemList = itemList;
mContext = context;
}
@Override
public Holder onCreateViewHolder(ViewGroup viewGroup, int viewType) {
//our xml showing how one row looks
View row = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.recycler_view_navigation, viewGroup, false);
Holder holder = new Holder(row);
return holder;
}
@Override
public void onBindViewHolder(Holder holder, final int position) {
holder.recyclerNavigation.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final Intent intent;
switch (position){
//specify what activity will launch on click
case 0:
intent = new Intent(mContext, Maintenance.class);
break;
case 1:
intent = new Intent(mContext, Contact.class);
break;
default:
intent = new Intent(mContext, MainActivity.class);
break;
}
mContext.startActivity(intent);
}
});
NavigationItem item = mItemList.get(position);
holder.iconImageView.setImageResource(item.getIcon());
holder.titleTextView.setText(item.getTitle());
holder.countTextView.setText(Integer.toString(item.getCount()));
}
@Override
public int getItemCount() {
return mItemList.size();
}
public class Holder extends RecyclerView.ViewHolder {
protected ImageView iconImageView;
protected TextView titleTextView;
protected TextView countTextView;
protected RelativeLayout recyclerNavigation;
public Holder(View view) {
super(view);
iconImageView = (ImageView) view.findViewById(R.id.iconImageView);
titleTextView = (TextView) view.findViewById(R.id.titleTextView);
countTextView = (TextView) view.findViewById(R.id.countTextView);
//the whole view
recyclerNavigation = (RelativeLayout) view.findViewById(R.id.recyclerNavigation);
}
}
}
我会关上导航抽屉
问题是获取对导航抽屉的引用。我在考虑从我所拥有的背景中获取观点,因为这就是我所拥有的一切
有没有办法做到这一点,或者我必须更改一些代码 首先,每次绑定viewholder时都要创建clicklistener。考虑在WiWHOWER的构造函数中设置一个CLIKLISTENER到<代码>这个<代码>。您可以在侦听器中使用
ViewHolder.getAdapterPosition()
要回答这个问题,您已经将
上下文
传递给适配器,为什么不同时将其(和viewholder)传递给导航抽屉 获取抽屉布局的参考,并在mContext.startActivity(intent)之前添加以下行;
抽屉布局 这就是为什么我用我的方式创建它:
mContext.startActivity(intent);