2016-02-13 2 views
0

У меня есть 2 кнопки и 1 поле с числами, если я нажимаю кнопку без чего-либо в поле, она сбой, поэтому я хочу отключить кнопки, если только числовое поле имеет что-то в нем, я искал ответ, но либо они не актуальны, либо я не уверен, как он вписывается в мой код, вот две функции onClick для каждой кнопки. БлагодаряКак отключить 2 кнопки, если числовое поле пуст

public void toPounds(View view){ 
    EditText amount = (EditText)findViewById(R.id.amount); 

    Double omrAmount = Double.parseDouble(amount.getText().toString()); 

    Double gbrAmount = omrAmount * 1.79; 

    Toast.makeText(getApplicationContext(), "£" + gbrAmount.toString(), Toast.LENGTH_LONG).show(); 
} 

public void toRiyals(View view){ 
    EditText amount = (EditText)findViewById(R.id.amount); 

    Double gbrAmount = Double.parseDouble(amount.getText().toString()); 

    Double omrAmount = gbrAmount/1.79; 

    Toast.makeText(getApplicationContext(), omrAmount.toString() + " Riyals", Toast.LENGTH_LONG).show(); 
} 
+0

на кнопку печати сначала проверьте, если номер поля не является пустым –

ответ

0
yourField.addTextChangedListener(new TextWatcher() { 

     @Override 
     public void afterTextChanged(Editable s) {} 

     @Override  
     public void beforeTextChanged(CharSequence s, int start, 
     int count, int after) { 
     } 

     @Override  
     public void onTextChanged(CharSequence s, int start, 
     int before, int count) { 
      if(s.length() == 0) 
      button1.setEnabled(false) 
     else 
     button1.setEnabled(true) 
     } 
     }); 

link

0

Если вы хотите, чтобы отключить кнопки, если изменить текст пуст, то вы можете сделать следующее:

EditText amount = (EditText)findViewById(R.id.amount); 
Button button = (Button) findViewById(R.id.button1); 
if(amount.getText().toString().isEmpty()){ 
    button.setEnabled(false); 
} 

amount.addTextChangedListener (новый TextWatcher() {

@Override 
    public void afterTextChanged(Editable s) {} 

    @Override  
    public void beforeTextChanged(CharSequence s, int start, 
    int count, int after) { 
    } 

    @Override  
    public void onTextChanged(CharSequence s, int start, 
    int before, int count) { 
     if(s.length() == 0) 
     button1.setEnabled(false) 
    else 
    button1.setEnabled(true) 
    } 
    }); 
0

Не конкретный ответ на ваш вопрос, но, вообще говоря, вы хотели бы добавить какой-то чек, прежде чем вы вызовете свой код, который теперь сбой вашего приложения. Это не очень хорошая идея, чтобы иметь код, который может повредить ваше приложение.

Может быть сделать метод, как: isMyEditTextValid (...) {..}

Смежные вопросы