我在android中有一个可扩展视图的代码,它将有限的数据加载到适配器中。我想要定制数据,但我被Arrays.asList()语法所困扰。
下面是现在加载数据的代码:
public static List<Genre> makeGenres()
{
return Arrays.asList(makeRockGenre(),
makeJazzGenre(),
makeClassicGenre(),
makeSalsaGenre(),
makeBluegrassGenre());
}
public static Genre makeRockGenre()
{
return new Genre("Rock", makeRockArtists(), R.drawable.ic_music_note_black_24dp);
}
public static List<Artist> makeRockArtists()
{
Artist queen = new Artist("Queen", true);
Artist styx = new Artist("Styx", false);
Artist reoSpeedwagon = new Artist("REO Speedwagon", false);
Artist boston = new Artist("Boston", true);
return Arrays.asList(queen, styx, reoSpeedwagon, boston);
}
注意:-这里跳过了其他类似的方法。
如您所见,makeGenres()返回一个通过Arrays.asList()创建的列表。在这里,ArraysasList调用了5个方法,每个方法返回一个数组。我想要做的不是调用这五个方法,而是创建具有'n'个数组的Arrays.asList()。
我需要像这样做的东西:
public static List<Genre> makeGenres()
{
return MakeArrayAsList();
}
public static List<Genre> MakeArrayAsList()
{
for(int i=0;i<20;i++)
{
//add 20 array items like this
newGenre("Rock",makeRockArtists(),R.drawable.ic_music_note_black_24dp);
}
//make Array.asList() using those 20 items to return
// return Arrays.asList
}
基本上,就好像我可以在Arrays.asList中调用makeRockGenre() 'n'次,而不是原始代码中的五个方法。
发布于 2018-07-26 09:54:27
你想用动态数量的参数调用Arrays.asList
吗?
Arrays.asList
是可变的,所以我们可以向它传入一个数组:
public static List<Genre> MakeArrayAsList() {
Genre[] genres = new Genre[20];
for(int i=0;i<20;i++) {
//add 20 array items like this
genres[i] = newGenre("Rock",makeRockArtists(),R.drawable.ic_music_note_black_24dp);
}
//make Array.asList() using those 20 items to return
// return Arrays.asList
return Arrays.asList(genres);
}
但是您可能实际上并不想使用Arrays.asList
。
你到底想要什么?
https://stackoverflow.com/questions/51528943
复制相似问题