Retrofit으로 작업하기 시작했습니다. 내 응용 프로그램에서 내가 유형 오는 로그에 내 모델에서 데이터를 얻을려고 두 ViewHolder 년대, 한 RecyclerView이 : 내 RecyclerView이 유형을 표시 할 수있는 방법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);
}
을 경우에게있을 것입니다 몇 가지 유형?
9월 9일에서 13일까지 : 20 : 지금 난 다음 메시지가 40.958 2798년부터 2798년까지/com.random.secondproject E/RecyclerView : 없음 어댑터가 연결되지; 레이아웃 건너 뛰는
데이터 어댑터 :
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);
}
당신은 내가 두 가지 유형 (텍스트 뷰와 글고) 그래서 (배열 내 생각) 모델에 몇 가지 방법을 쓸 것을거야 볼 수 있듯이 . 예를 들어 Log.d에 썼습니다.
** onResponse **가 호출되기 전에이 메시지가 표시된다고 가정합니다. –
네, 필요한 경우 MainActivity에 모든 코드를 표시 할 수 있습니다. 문제를 이해하고 싶습니다. – Morozov
log.d는 인쇄 값 유형 및 제목입니다. 질문을 편집하여 DataAdapter 코드를 추가 할 수 있습니까 –