列表视图中的禁用按钮每3次重复一次

时间:2016-01-28 07:53:11

标签: android listview

嗨,我是新的Android开发人员,我有一个问题。 我有一个自定义列表视图,它有5个项目。 该项目包括5个textview,1个按钮。 textviews一切都很好,但按钮很奇怪....

我的代码(关于按钮)流是

  1. 检查deliveryltemPosition.order_taken_str的值。
  2. 如果deliveryltemPosition.order_taken_str为2,则禁用complete_btn。
  3. 但每3个项目重复一次...... 只有第二个按钮值为2,但第6个按钮也被禁用。

    - > (button_able)(button_able)(button_able)(button_able)(button_able)(button_disable)(button_able)

    如何解决?

    package com.studentscalculator;
    
    import com.studentscalculator.OperatorComparator.OPERATOR_PRIORITY;
    
    public class Operator
    {
    
        public enum OperatorType
        {
            UNARY, BINARY, TERNARY
        }
    
        public enum Associativity
        {
            LEFT, RIGHT
        }
    
        private String operator;
        public String getOperator(){return operator;}
        public void setOperator(String operator){this.operator = operator;}
    
        private int order;
        public int getOrder(){return order;}
        public void setOrder(int order){this.order = order;}
    
        private OperatorType type;
        public OperatorType getType(){ return type; }
        public void setType(OperatorType type){ this.type = type; }
    
        private Associativity associativity;
        public Associativity getAssociativity(){ return associativity;}
        public void setAssociativity(Associativity associativity){ this.associativity = associativity; }
    
        //Constructors
        public Operator(String operator)
        {
            this.setOperator(operator);
            this.setOrder(OperatorList.getOperatorOrder(operator));
            this.setType(OperatorList.getOperatorType(operator));
            this.setAssociativity(OperatorList.getOperatorAssociativity(operator));
        }
    
        public Operator(String operator, int order)
        {
            this.setOperator(operator);
            this.setOrder(order);
            this.setType(OperatorList.getOperatorType(operator));
        }
    
        public Operator(String operator, int order, OperatorType t)
        {
           init(operator, order, t, Associativity.LEFT);
        }
    
        public Operator(String operator, int order, OperatorType t, Associativity a)
        {
           init(operator, order, t, a);
        }
    
        void init(String operator, int order, OperatorType t, Associativity a)
        {
            this.setOperator(operator);
            this.setOrder(order);
            this.setType(t);
            this.setAssociativity(a);
        }
    
    
        public boolean lessThanEqual(Operator arg0)
        {
            int val = -(this.order - arg0.order);
            if (val <= 0)
                return true;
            else
                return false;
        }
    
        public boolean lessThan(Operator arg0)
        {
            int val = -(this.order - arg0.order);
            if (val < 0)
                return true;
            else
                return false;
        }
    
        @Override
        public String toString()
        {
            String val = String.format("Operator = %s : Order %s", getOperator(), getOrder());
            return val;
        }
    
    }
    

1 个答案:

答案 0 :(得分:1)

试试这个

if (deliveryltemPosition.order_taken_str.equals("2")){
    complete_btn.setEnabled(false);
} else {
    complete_btn.setEnabled(true);
}