如何告诉自定义适配器使用班级列表而不是填充\添加项目?

时间:2019-09-05 15:59:24

标签: java android listview listview-adapter

我尝试显示带有文本和图像的listView,以及制作一个customAdapter,就像在我看到的视频中一样(我是android编程的新手) 当我在MainActivity.class中尝试使用适配器时,它会要求我用一个列表填充它,例如在示例中。

CustomListAdapter listAdapter = new CustomListAdapter(this,imageItems);

在像这样填充它之前

 private void fillList() {
        imageItems = new ArrayList<>();
        imageItems.add(new ImageItem(R.drawable.aloner,"Title 1"));
        imageItems.add(new ImageItem(R.drawable.years,"Title 2"));
        imageItems.add(new ImageItem(R.drawable.zombie,"Title 3"));
        imageItems.add(new ImageItem(R.drawable.fighter,"Title 4"));
        imageItems.add(new ImageItem(R.drawable.alonefighter,"Title 5"));
    }

但是我的ImageList.class中已经有我需要的列表。

 public static final ImageItem[] images = {
            new ImageItem(R.drawable.aloner, "Title 1"),
            new ImageItem(R.drawable.years, "Title 2"),
            new ImageItem(R.drawable.zombie, "Title 3"),
            new ImageItem(R.drawable.fighter, "Title 4"),
            new ImageItem(R.drawable.alonefighter, "Title 5")
    };

我尝试用我的 ImageList.images 填充适配器,但是它显示了一个错误并需要一个列表。 enter image description here

如何告诉我的CustomAdapter 使用从ImageItem.class创建的列表,而不是将其填充到MainActivity中?

希望我已经正确地解释了我的问题。在我观看的所有视频中,人们总是在填写清单...

1 个答案:

答案 0 :(得分:0)

该错误清楚地表明,自定义适配器的构造函数中的参数类型与您要设置的参数类型不同。

您需要更改自定义适配器的构造函数以使用数组而不是列表,或者在调用构造函数时,可能需要将数组转换为类似

的列表
CustomListAdapter listAdapter = new CustomListAdapter(this, Arrays.asList(ImageItem.images));

希望这会有所帮助!