Android 使用许多列表重构代码的想法
我需要一些帮助来了解如何重构我的代码,但我看不到除了所做的之外的选项,我想添加对象,但不使用太多列表(以及if的条件) 这是我的代码,如果有人能帮忙,我很感激。谢谢Android 使用许多列表重构代码的想法,android,Android,我需要一些帮助来了解如何重构我的代码,但我看不到除了所做的之外的选项,我想添加对象,但不使用太多列表(以及if的条件) 这是我的代码,如果有人能帮忙,我很感激。谢谢 @ViewById BannerHomeViewPager place1, place2, place3, place4, place5, place6, place7, place8, place9; 名单如下: private List<HomeItem> allHomeItems = new Ar
@ViewById
BannerHomeViewPager place1, place2, place3, place4, place5, place6, place7,
place8, place9;
名单如下:
private List<HomeItem> allHomeItems = new ArrayList<HomeItem>(),
placeItems1 = new ArrayList<HomeItem>(),
placeItems2 = new ArrayList<HomeItem>(),
placeItems3 = new ArrayList<HomeItem>(),
placeItems4 = new ArrayList<HomeItem>(),
placeItems5 = new ArrayList<HomeItem>(),
placeItems6 = new ArrayList<HomeItem>(),
placeItems7 = new ArrayList<HomeItem>(),
placeItems8 = new ArrayList<HomeItem>(),
placeItems9 = new ArrayList<HomeItem>();
3) setupAdapters()
如@DanielBo回答:
private Map<String, ArrayList<HomeItem>> placeItems = new HashMap<String,ArrayList<HomeItem>>();
void updateUI() {
if (allHomeItems != null && allHomeItems.size() > 0) {
for (HomeItem item : allHomeItems) {
if(!placeItems.containsKey(item.getPlacement())){
placeItems.put(item.getPlacement(), new ArrayList<HomeItem>());
}
placeItems.get(item.getPlacement()).add(item);
}
}
setupAdapters();
}
private-Map-placeItems=new-HashMap();
void updateUI(){
if(allHomeItems!=null&&allHomeItems.size()>0){
用于(HomeItem项目:所有HomeItems){
如果(!placeItems.containsKey(item.getPlacement())){
placeItems.put(item.getPlacement(),newArrayList());
}
placeItems.get(item.getPlacement()).add(item);
}
}
设置适配器();
}
但是为什么要使用这么多视图呢?我真的说不出这是否正确,因为我不知道这是为什么,但我想不出在同一布局中有这么多列表视图有什么好的用途…也许可以使用哈希图来包装列表,并使用位置作为键?@LeonardoOleonardo没问题,但现在我很好奇为什么布局中有这么多视图:p,你能给我点灯吗?当然。。。我不知道你是否能理解我的解释,因为我对安卓系统还不熟悉。无论如何,活动中有一些动画,每个横幅将收到3张图片,这些图片将在4到4秒钟内加载。但是,客户端并没有发送真正的图像,所以我们不得不模拟许多事情……您还可以使用一个带有3列的自定义ListView和一个自定义适配器来实现这一点:D
private void setupAdapters() {
if (place1 != null)
place1.update(placeItems1);
if (place2 != null)
place2.update(placeItems2);
if (place3 != null)
place3.update(placeItems3);
if (place4 != null)
place4.update(placeItems4);
if (place5 != null)
place5.update(placeItems5);
if (place6 != null)
place6.update(placeItems6);
if (place7 != null)
place7.update(placeItems7);
if (place8 != null)
place8.update(placeItems8);
if (place9 != null)
place9.update(placeItems9);
}
private Map<String, ArrayList<HomeItem>> placeItems = new HashMap<String,ArrayList<HomeItem>>();
void updateUI() {
if (allHomeItems != null && allHomeItems.size() > 0) {
for (HomeItem item : allHomeItems) {
if(!placeItems.containsKey(item.getPlacement())){
placeItems.put(item.getPlacement(), new ArrayList<HomeItem>());
}
placeItems.get(item.getPlacement()).add(item);
}
}
setupAdapters();
}