私はRetrofitで作業を始めました。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このタイプを表示することができます。私のアプリケーションでは、私はログに、私のモデルからデータを取得しようとタイプ来るところ、2 ViewHolderさんと1 RecyclerViewを持っていますいくつかのタイプ?
9月13日09:20:40.958 2798年から2798年/ E/RecyclerView com.random.secondproject: は今、私は次のメッセージを取得ノーアダプタ付属し;レイアウトをスキップ
の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);
}
あなたが見ることができるように、私はので、私は(私は思うのアレイ)をモデル化する方法をいくつか書きます2種類(のTextViewとのEditText) を取るつもりです。たとえば、私がLog.dに書いたように。
** onResponse **が呼び出される前にそのメッセージが表示されると思いますが、そうですか? –
はい、MainActivityにすべてのコードを表示することができます。 問題を理解したい。 – Morozov
log.dが印刷値のタイプとタイトルであると仮定します。質問を編集してDataAdapterコードを追加できますか? –