将数据填充到RecyclerView

时间:2016-02-12 05:40:18

标签: java android json parsing android-recyclerview

我想将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);

    }
}

2 个答案:

答案 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();
}
相关问题