【问题标题】:How to show array of Strings in GridView for CardView如何在 CardView 的 GridView 中显示字符串数组
【发布时间】:2018-09-03 19:28:12
【问题描述】:

我正在尝试将字符串数组显示为 GridView 中的项目,但它不起作用。关于应该使用什么 Java 代码来显示它们的任何想法?另外,在 RecyclerView 项目类中,我不确定在这种情况下是否应该使用 ArrayString 类型。

片段类

public class MyFragment extends android.support.v4.app.Fragment {

    private MyRecyclerAdapter adapter;

    static final String[] frenchVowels = new String[]{
            "a", "e", "i", "o", "u", "y"
    };


    public MyFragment() {}

    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        return inflater.inflate(R.layout.fragment_rv, container, false);
    }

    @Override
    public void onActivityCreated(@Nullable Bundle savedInstanceState) {
        View v = getView();
        assert v != null;

        recyclerView = v.findViewById(R.id.my_recyclerview);
        linearLayoutManager = new LinearLayoutManager(getActivity());

        MyRecyclerAdapter adapter = new MyRecyclerAdapter(getContext(), getHeader(), getListItems());
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(adapter);

        super.onActivityCreated(savedInstanceState);
    }

    RecyclerView recyclerView;
    LinearLayoutManager linearLayoutManager;

    public RecyclerViewHeader getHeader()
    {
        return new RecyclerViewHeader();
    }

    public List<MyRecyclerViewItem> getListItems() {
        List<MyRecyclerViewItem> rvItems = new ArrayList<>();

        MyRecyclerViewItem item = new MyRecyclerViewItem();
        item.setTitle("French vowels");
        item.setDescription("¿What goes here?");
//        for (String frVowels : frenchVowels) {
//            adapter.addAdapterItem(new MyFragment.AdapterItem(frVowels));
//        }
        rvItems.add(item);

        return rvItems;
    }
}

RecyclerView 项目类

public class MyRecyclerViewItem {
    private String title;
    private String description;

    public MyRecyclerViewItem(){}

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

//    public Array getDescription() {
//        return description;
//    }
//
//    public void setDescription(Array description) {
//        this.description = description;
//    }

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }
}

预期结果

当前 CardView(折叠)

当前 CardView(展开)

【问题讨论】:

    标签: java android arrays android-recyclerview android-cardview


    【解决方案1】:

    我看到您正在使用 LinearLayoutManager。您需要将其更改为 GridLayoutManager。你可以试试这段代码:

    //Set GridLayoutManager
        int gridColumnCount = 2
        recyclerView.setLayoutManager(new GridLayoutManager(this, gridColumnCount));
    

    列数由“gridColumnCount”中的数字控制。

    【讨论】:

    • 请删除您的答案。已找到解决方案。
    • 如果达到-3,我会考虑的。
    猜你喜欢
    • 2022-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多