【问题标题】:Populate Data into RecyclerView将数据填充到 RecyclerView
【发布时间】:2016-02-12 05:40:17
【问题描述】:

我想将 JSON 对象的 数据 显示到 RecyclerView 中,因为我已经尝试过了,但没有得到任何数据。

May,我知道我在哪里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);

    }
}

【问题讨论】:

  • 那为什么不填充值列表
  • @VivekMishra 你能指出错误吗?请发表你的答案
  • 已经指出 valueList=null。您尚未使用任何数据初始化您的列表
  • 没有得到......我错过了什么,我已经在使用:mAdapter = new LearningAdapter(valueList, R.layout.card_learning, getApplicationContext()); @VivekMishra
  • 只需写List&lt;Learning&gt; valueList = new ArrayList&lt;Learning&gt;(); 并在该列表中添加一些数据

标签: java android json parsing android-recyclerview


【解决方案1】:

最后,我有resolved我自己的问题。

我找到了一个非常简单直接的解决方案here

很高兴!为我工作

Bundle bundle = new Bundle();
bundle.putParcelableArrayList("mylist", learning);
intent.putExtras(bundle);

【讨论】:

    【解决方案2】:

    关于设置数据

    private List<Learning> valueList = new ArrayList<Learning>();
    

    这是一个新的、空的 ArrayList。如果您还没有填写,您应该填写它。 为了测试你的实现,你可以添加 2 个空对象:

    valueList.add(new Learning());
    valueList.add(new Learning());
    

    至少,recyclerview 现在应该包含 2 个空项。

    你的数据看起来也有点奇怪:

    您设置了一个 List 命名值,一个 Learning 对象的 List。 在适配器的 onBindViewHolder 函数中,您有以下语句:

    final Value value = values.get(i);
    String stringLearning = "";
    List<Learning> learning = value.getLearning();
    

    这与您的数据不符。 Value value = values.get(i); 应该返回一个 > Learning 对象,而不是 Learning 对象的列表。

    //编辑:Gnarf,您在编辑问题时发布了一个全新的适配器。请忽略我上面引用的文字,下次在你问之前考虑一下你发布的代码......

    您的适配器类

    在您的适配器类中,您需要实现getItemCount()。因为这个方法是抽象的,我假设你已经做到了: http://developer.android.com/reference/android/support/v7/widget/RecyclerView.Adapter.html#getItemCount%28%29

    public abstract getItemCount () {
        return values.size();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-26
      • 1970-01-01
      相关资源
      最近更新 更多