【问题标题】:(Android) Create RecyclerView with strings from list(Android) 使用列表中的字符串创建 RecyclerView
【发布时间】:2016-11-23 11:57:56
【问题描述】:

我有一个包含名称的List<String> listOfNames。如何使用 RecyclerView 将它们全部打印出来?

【问题讨论】:

  • 请添加更多详细信息您尝试了什么?
  • 我找到了许多不同的教程,但每个教程对我来说都太复杂了,例如单击按钮以在 RecyclerView 中显示 TextView 中的文本。我只想要一个非常简单的答案:我必须使用 RecyclerView,完全不知道,我需要打印列表中的所有元素,我不知道该怎么做。

标签: java android list android-recyclerview


【解决方案1】:

我一直在寻找一种简单的方法来做到这一点,经过一段时间的摆弄,我想我找到了一种方法。

这里我使用字符串的 ArrayList。

适配器类

public class TagsAdapter extends RecyclerView.Adapter<TagsAdapter.TagsViewHolder> {

    ArrayList<String> arrayList;

    public TagsAdapter(ArrayList<String> arrayList) {
        this.arrayList = arrayList;
    }

    @NonNull
    @Override
    public TagsViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View layoutView = LayoutInflater.from(parent.getContext()).inflate(R.layout.view_holder_tags_chips, parent, false);

        return new TagsAdapter.TagsViewHolder(layoutView);
    }

    @Override
    public void onBindViewHolder(@NonNull final TagsViewHolder holder, final int position) {
        holder.tagText.setText(arrayList.get(position));
    }

    @Override
    public int getItemCount() {
        return arrayList.size();
    }

    public class TagsViewHolder extends RecyclerView.ViewHolder {
        public TextView tagText;

        public TagsViewHolder(View view) {
            super(view);

            tagText = view.findViewById(R.id.chipTextView);
        }
    }
}

现在在要显示回收器视图的 Activity 或片段中,将回收器视图初始化为 xml 中的视图

Tags.Java

    private RecyclerView recyclerView;
    private RecyclerView.LayoutManager layoutManager;
    private RecyclerView.Adapter adapter;

在同一个地方添加这个方法。我假设数组列表中已经有字符串

private void getTags() {
        recyclerView = view.findViewById(R.id.view);
        recyclerView.setNestedScrollingEnabled(false);
        recyclerView.setHasFixedSize(false);

        layoutManager = new LinearLayoutManager(requireActivity(), LinearLayoutManager.HORIZONTAL, false);
        //I have made my recycler view horizontal, if you want it vertical, just change the horizontal above to vertical.
        recyclerView.setLayoutManager(layoutManager);

        adapter = new TagsAdapter(tagsArray);
        recyclerView.setAdapter(adapter);
    }

我知道这是一个老问题,但可能会对想要一种简单直接的方法的人有所帮助。

【讨论】:

    【解决方案2】:

    嗨,回收站视图的简单示例。

    按照以下步骤操作:

    1. 在全局中声明这个变量

      private RecyclerView recyclerview;
      
    2. 在您从服务器获取响应并使用 GSON 插件创建一个模型类时使用它,只需复制并粘贴您的响应。使用后。

      Gson gson = new Gson();
      CreateYourModel createYourModel = gson.fromJson(response_data, YourActivity.class);
      
      RecyclerAdapter  mAdapter = new RecyclerAdapter(createYourModel);
      
      RecyclerView.LayoutManager mLayoutManager = new LinearLayoutManager(getActivity());
      recyclerview.setLayoutManager(mLayoutManager);
      recyclerview.setItemAnimator(new DefaultItemAnimator());
      recyclerview.setAdapter(mAdapter);
      recyclerview.setNestedScrollingEnabled(false);
      
    3. 这是你的 Recycler 适配器,使用相同。

      public class RecyclerAdapter extends         RecyclerView.Adapter<RecyclerAdapter.MyViewHolder> {
      
      private CreateYourModel mList;
      
      public class MyViewHolder extends RecyclerView.ViewHolder {
      public TextView tvdate;
      
      public MyViewHolder(View view) {
          super(view);
          tvdate = (TextView) view.findViewById(R.id.tvdate);
      
      }
      }
      
      
      public RecyclerAdapterCreateYourModel mList) {
      this.mList = mList;
      }
      
      @Override
      public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
      View itemView = LayoutInflater.from(parent.getContext())
              .inflate(R.layout.youritemview, parent, false);
      
      return new MyViewHolder(itemView);
      }
      
      @Override
      public void onBindViewHolder(MyViewHolder holder, int position) {
      
      holder.tvsummuryloan_repayment_date.setText(setyourdatafromlist);
      
      }
      
       @Override
      public int getItemCount() {
      return mList.size();
      }
      }
      

    您可以按照谷歌上的任何教程。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 2017-07-02
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多