-3

我有 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());

                    }
4

3 回答 3

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
     }
}
于 2013-07-23T14:18:37.033 回答
0

在你的类上实现一个TextWatcher,并在你的每个EditTexts上添加一个Text Changed Listener,例如ed1.addTextChangeListener(this)。然后在自动生成的方法 afterTextChanged 中检查每个 EditTexts 中文本的长度。如果所有长度都大于 0,请执行 calculate.setEnabled(true),首先在 onCreate 上使用 calculate.setEnabled(false) 对其进行初始化

于 2013-07-23T14:31:09.577 回答
-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);
}

稍作修正。

于 2013-07-23T14:20:22.133 回答