(Android)使用列表中的字符串创建RecyclerView

时间:2016-11-23 11:57:56

标签: java android list android-recyclerview

我有一个包含姓名的List<String> listOfNames。如何使用RecyclerView打印它们?

3 个答案:

答案 0 :(得分:0)

使用recylerview的一个非常有用的起点是here click here

这是你想要的基本例子!

答案 1 :(得分:0)

嗨回收者视图的简单示例。

按照以下步骤操作:

  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();
    }
    }
    
  4. 您可以按照Google上的任何教程进行操作。

    由于

答案 2 :(得分:0)

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

这里我使用字符串的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);
        }
    }
}

现在,在“活动”或片段中,要显示回收者视图,请将回收者视图初始化为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);
    }

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