2016-02-13 33 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(...){..}

相关问题