Чтобы получить контекст в адаптере RecyclerView, вы можете использовать один из следующих методов:
- Внедрение в конструктор: передайте контекст в качестве параметра конструктору адаптера при создании экземпляра адаптера. Сохраните контекст в переменной-члене и используйте его по мере необходимости в адаптере.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context mContext;
public MyAdapter(Context context) {
mContext = context;
}
// Rest of the adapter implementation
}
- Метод получения: создайте метод получения в классе адаптера для получения контекста. Вы можете установить контекст с помощью метода установки или через конструктор.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context mContext;
public void setContext(Context context) {
mContext = context;
}
public Context getContext() {
return mContext;
}
// Rest of the adapter implementation
}
- Переопределить метод onCreateViewHolder. В адаптере RecyclerView переопределите метод onCreateViewHolder и передайте контекст из родительского действия или фрагмента.
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context mContext;
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
mContext = parent.getContext();
// Rest of the onCreateViewHolder implementation
}
// Rest of the adapter implementation
}
- Использовать контекст приложения. Если нужный вам контекст не зависит от действия или фрагмента, вы можете использовать контекст приложения, доступный из любой части вашего приложения. Вы можете получить контекст приложения, используя
getApplicationContext().
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private Context mContext;
public MyAdapter() {
mContext = MyApplication.getInstance().getApplicationContext();
}
// Rest of the adapter implementation
}
Это некоторые методы, которые вы можете использовать для получения контекста в адаптере RecyclerView. Выберите метод, который соответствует вашим конкретным требованиям и стилю кодирования.