为什么setEnabled(false)没有取消激活按钮

时间:2019-02-13 09:06:13

标签: android

我使用(+/-)按钮来增加或减少计数器,但是我将上限设置为2,因此我想在计数器达到2后禁用ElegantNumber按钮的加号按钮,并且我希望减号按钮保持活跃。

public class MainActivity extends AppCompatActivity {

ElegantNumberButton numberbutton;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    numberbutton=(ElegantNumberButton)findViewById(R.id.numberButton);
  //  counter=(TextView)findViewById(R.id.counterTxt);



    numberbutton.setOnValueChangeListener(new ElegantNumberButton.OnValueChangeListener() {
        @Override
        public void onValueChange(ElegantNumberButton view, int oldValue, int newValue) {


            String count= numberbutton.getNumber();
            int temp=Integer.parseInt(count);
          if(temp>=2 ) {
              Toast.makeText(MainActivity.this, "NO more casual leave allowed", Toast.LENGTH_SHORT).show();
              numberbutton.setEnabled(false);



          }

        }
    });

}

1 个答案:

答案 0 :(得分:1)

如果您是用 ElegantNumberButton 来指this,我会说它并不是一个真正的按钮。这是一个RelativeLayout,因此其 setEnabled()不会更改其中的任何子级。要禁用+/-按钮,请尝试以下代码:

for (int i = 0; i < numberbutton.getChildCount(); i++) {
   View child = numberbutton.getChildAt(i);
   child.setEnabled(false);
}