我有一个listview适配器,它扩展了基本的ArrayAdapter。填充列表成员的整个逻辑是在if块中。由于只有4个字段,所以没什么大不了的。但是,如果您有更复杂的adapter怎么办?
使用ifs还是一个好习惯,还是应该实施更优雅的解决方案(在性能方面)?

   if (promo != null) {

        if(!(promo.getItemType().equals(""))){
            holder.item1.setText("Item group :"+ promo.getItemType());
        }
        else if(!(promo.getItemCode().equals(""))){
            holder.item1.setText(promo.getItemCode());
        }

        else if(!(promo.getCustCode().equals(""))){
            holder.item1.setText(promo.getCustCode());
        }
        else if(!(promo.getCustType().equals(""))){
            holder.item1.setText("Clients from: "+ promo.getCustType());
        }

        //set ItemRelation
        if( !(promo.getItemType().equals("")) ){
            holder.item2.setText( promo.getItemCode() );

        }else if(promo.getItemType().equals("1")){
            holder.item2.setText("Group " + promo.getItemCode());

        }else{
            holder.item2.setText("All items");
        }

        if(promo.getPromoType().equals("1")){
            holder.item3.setText(promo.getPercent() + "%");
        }else{
            holder.item3.setText("Sum " + promo.getSalesPrice());
        }

最佳答案

我认为没有什么特别的技术可以避免“ ifs”,但是使用多个if语句应该没有任何问题。但是如果您将在if块中使用某种繁重的循环,则可能会影响程序的性能

关于android - Android listview中的自定义适配器有很多if,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35456369/

10-12 00:11
查看更多