-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

0

クラスに TextWatcher を実装し、各 EditText に Text Changed Listener を追加します (例: ed1.addTextChangeListener(this))。次に、自動生成されたメソッド afterTextChanged で、各 EditText のテキストの長さを確認します。すべての長さが 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 に答える