我有3个EditText,需要从用户输入一个值。我想确保所有3个EditText框都有一个值,然后用户才能单击该按钮。如果没有,那么用户必须无法单击该按钮。我尝试使用“setEnabled”或“setVisibility”但它们会引发错误。
EditText numA, numB, numC;
public static class QuadEquation extends Activity{
Button calculate;
EditText numA, numB, numC;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.calculator);
calculate = (Button) findViewById(R.id.calculate);
numA = (EditText) findViewById(R.id.numA);
numB = (EditText) findViewById(R.id.numB);
numC = (EditText) findViewById(R.id.numC);
try{
calculate.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Double a = (double) 0, b = (double) 0, c = (double) 0;
//Need to convert the string into double.
if (!(numA.getText().toString().equals("") && numB.getText().toString().equals("") && numC.getText().toString().equals(""))){
a = Double.parseDouble(numA.getText().toString());
b = Double.parseDouble(numB.getText().toString());
c = Double.parseDouble(numC.getText().toString());
}
答案 0 :(得分:1)
如果您想以这种方式执行此操作并希望我们帮助解决错误,您应该发布错误。
无论如何,另一种方法是检查onClick()
是否都有价值
public void onClick(View v)
{
if (et1.getText().toString.equals("") || et2.getText().toString.equals("")
|| et3.getText().toString.equals(""))
{
// could print Toast to tell user to enter values or do something else
}
else
{
// do your work
}
}
答案 1 :(得分:0)
在您的课程上实施TextWatcher,并在每个EditTexts上添加一个Text Changed Listener,例如ed1.addTextChangeListener(本)。然后在自动生成的方法afterTextChanged中检查每个EditTexts中Text的长度。如果所有长度都大于0,则执行calculate.setEnabled(true),首先使用calculate.setEnabled(false)在onCreate上初始化它
答案 2 :(得分:-3)
试试这个:
EditText ed1 = findViewById(R.id.edit1);
EditText ed2 = findViewById(R.id.edit2);
EditText ed3 = findViewById(R.id.edit3);
Button btn = (Button) findViewById(R.id.button);
String editString = ed1.getText().toString();
if(editString!= null){
editString = ed2.getText().toString();
}
if(editString!= null){
editString = ed3.getText().toString();
}
if(editString!= null){
btn.setEnabled(true);
}
稍作修正。