【问题标题】:Android RecyclerView onClick with JSONAndroid RecyclerView onClick 与 JSON
【发布时间】:2017-10-24 06:27:14
【问题描述】:

我想将我在 recyclerview 上单击的项目转移到另一个片段。我不知道如何将我在 recyclerview 上单击的数据传输到另一个片段。这是我的代码。数据来自我的 JSON。

    public void onBindViewHolder(ViewHolder holder, int position) {
    final ListItem listItem = listItems.get(position);

    holder.textViewHead.setText(listItem.getHead());
    holder.textViewDesc.setText(listItem.getDesc());
    Picasso.with(context)
            .load(listItem.getImgUrl())
            .into(holder.imageViewElliptic);
    holder.relativeLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Toast.makeText(context, "You clicked " + listItem.getHead(), Toast.LENGTH_LONG).show();
        }
    });
}

【问题讨论】:

  • 你想在片段之间传输数据或者如何在你的相对布局的点击上调用另一个片段?
  • 我想让我点击的json数据在我点击的时候转移到另一个fragment。我不知道怎么做。我还是个初学者。

标签: android mysql json android-recyclerview fragment


【解决方案1】:

嗯,首先您应该将数据存储在 List 或其他一些可访问的数据对象中,我认为您在创建适配器后就已经这样做了。

嗯,你有这行:

public void onBindViewHolder(ViewHolder holder, int position) {

您可以使用方法提供的位置从您的List 或其他地方获取数据,如下所示:

YourJsonData data = yourDataSource.get(holder.getAdapterPosition());

由于您使用的是onClickListener,因此您不应直接调用position,这可能会导致问题。

例如,在我的项目中,我使用Lesson[] 作为我的数据源:

https://github.com/gi097/MyWindesheim/blob/master/app/src/main/java/com/giovanniterlingen/windesheim/view/Adapters/ScheduleAdapter.java

获得数据后,您可以Intent 一个新的Activity 为您创建片段。或者,如果已经存在Fragment,您可以通过通知您的Activity 来更新该Activity,然后更新该特定Fragment

【讨论】:

    【解决方案2】:

    onClick 中使用Intent 并将整个ArrayList 发送到下一个活动

    Intent intent = new Intent(context, AnotherActivity.class);
    intent.putExtra("model", arrayList.get(position));
    context.startActivity(intent);
    

    并在下一个Activity使用此代码sn-p接收它。

    Intent i = getIntent();
    
      ArrayModel arrayModel = (ArrayModel) i.getSerializableExtra("model");
        if (arrayModel != null) {
           String head = arrayModel.getHead();
           Log.d("HEAD", head);
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多