我想将JSON对象的数据显示到RecyclerView
,因为我已经尝试了这个但没有得到任何数据。
五月,我知道我在做什么mistake
以及我拥有什么missed
?
如何将learning
对象数据从MainAdapter
传递到LearningActivity
MainAdapter 类:
@Override
public ViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(rowLayout, viewGroup, false);
return new ViewHolder(v);
}
@Override
public void onBindViewHolder(ViewHolder viewHolder, int i) {
final Value value = values.get(i);
........
List<Learning> learning = value.getLearning();
viewHolder.btnCallNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, LearningActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.startActivity(intent);
}
});
}
LearningActivity 类:
public class LearningActivity extends AppCompatActivity {
......
mAdapter = new LearningAdapter(valueList, R.layout.card_learning, getApplicationContext());
mRecyclerView.setAdapter(mAdapter);
}
}
答案 0 :(得分:0)
最后,我有def create
@form = Form.new(form_params)
respond_to do |format|
if @form.save
format.html { redirect_to @form, notice: 'Form was successfully created.' }
format.json { render :show, status: :created, location: @form }
else
format.html { render :edit, alert: 'Error creating ...' }
format.json { render json: @form.errors, status: :unprocessable_entity }
end
end
end
我自己的问题。
我找到了一个非常简单直观的解决方案here
高兴!为我工作
resolved
答案 1 :(得分:-1)
关于设置数据
private List<Learning> valueList = new ArrayList<Learning>();
这是一个新的空ArrayList。如果你还没有填写它,你应该填写它。 要测试您的实现,您可以添加2个空对象:
valueList.add(new Learning());
valueList.add(new Learning());
至少,recyclerview现在应该包含2个空项目。
您的数据也有点奇怪:
设置List命名值,
Learning
个对象列表。 在适配器的onBindViewHolder
函数中,您有以下语句:final Value value = values.get(i); String stringLearning = ""; List<Learning> learning = value.getLearning();
这与您的数据不符。
Value value = values.get(i);
应返回&gt;Learning
对象,而不是Learning
个对象的列表。
//编辑:Gnarf,您在编辑问题时发布了一个全新的适配器。请忽略我上面引用的文字,下次再考虑一下您发布的代码...
适配器类
在Adapter类中,您需要实现getItemCount()
。因为这个方法是抽象的,所以我假设你已经完成了它:
http://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html#getItemCount%28%29
public abstract getItemCount () {
return values.size();
}