Я начал работать с Retrofit. В моем приложении у меня есть один RecyclerView с двумя ViewHolder, где пытаются получить данные из моих моделей, в журналах приходя типа:Получить данные в моем RecyclerView
@Override
public void onResponse(Call<DropDown> call, Response<DropDown> response) {
DropDown jsonResponse = response.body();
Log.d("type",jsonResponse.getForm().getmGroupss().get(1).getmControls().get(2).getTitle()+"");
adapter = new DataAdapter(response.body());
recyclerView.setAdapter(adapter);
}
Как я могу отобразить этот тип в моем RecyclerView, если будет несколько типов? Теперь я получаю следующее сообщение:
09-13 09: 20: 40,958 2798-2798/com.random.secondproject E/RecyclerView: адаптер не прилагается; пропуская макет
DataAdapter:
public class DataAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
public static final String TYPE_TEXTVIEW = "0";
public static final String TYPE_EDITVIEW = "1";
private DropDown mList;
public DataAdapter(DropDown list) {
this.mList = list;
}
@Override
public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view;
switch (viewType) {
case 0:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.text_numeric, parent, false);
return new NumericViewHolder(view);
case 1:
view = LayoutInflater.from(parent.getContext()).inflate(R.layout.drop_down_options, parent, false);
return new DropDownViewHolder(view);
}
return null;
}
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
DropDown object = mList.get(position);
if (object != null) {
switch (object.getTitle()){
case TYPE_TEXTVIEW:
((NumericViewHolder) holder).title.setText(String.valueOf(object.getTitle()));
break;
case TYPE_EDITVIEW:
((DropDownViewHolder) holder).title_options.setText(String.valueOf(object.getTitle()));
break;
}
}
}
@Override
public int getItemCount() {
if (mList == null)
return 0;
return mList.size();
}
@Override
public int getItemViewType(int position) {
DropDown object = mList.get(position);
if (object.getTitle().equals("drop_down_options"))
return 0;
else return 1;
}
public class NumericViewHolder extends RecyclerView.ViewHolder {
private TextView title;
public NumericViewHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.title);
}
}
public class DropDownViewHolder extends RecyclerView.ViewHolder {
private EditText title_options;
public DropDownViewHolder(View itemView) {
super(itemView);
title_options = (EditText) itemView.findViewById(R.id.title_options);
}
Как вы можете видеть, я собираюсь взять два типа (TextView и EditText) поэтому я буду писать несколько способов модели (массив я думаю) , Например, как я писал в Log.d.
Я предполагаю, что вы получили это сообщение до того, как вызывается ** onResponse **, правильно? –
Да, я могу показать весь свой код в MainActivity, если это необходимо. Хотите понять проблему. – Morozov
Предполагая, что log.d печатает тип и заголовок значения. Пожалуйста, можете добавить код DataAdapter, отредактировав вопрос –