1

アプリケーションで EditText フィールドを使用しています。また、そのためにaddTextChangedListenerを追加しました。onTextChanged メソッドで、squareFunction を呼び出しました。コードは次のようになります..

value = (EditText)findViewById(R.id.amount);
value.addTextChangedListener(new TextWatcher() {
    public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) 
            {
                squareFunction();

            }

            public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {
                // TODO Auto-generated method stub

            }

            public void afterTextChanged(Editable arg0) {
                // TODO Auto-generated method stub

            }
        });

今私の問題:= 入力数値の値を正しく取得しています。しかし、EditField をクリアすると、エラーが発生し、「強制的に閉じる」ように求められます。その中のすべての文字がクリアされたら、editField の値を 0 にします。出来ますか?はいの場合、どのように行うことができますか。可能であればコードで説明してください...

4

3 に答える 3

2

次のような条件を追加してみてください

if(value.getText().toString().equalsIgnoreCase(""))
{
 Log.i(TAG,"EditText Clear");
//set value to 0
}
else
{
 squareFunction(); 
}

これもafterTextChanged

于 2011-12-06T06:10:02.143 に答える
2

onTextChanged() 内

if( arg0.length()==0)
{
value.setText("");
}

この基本的なことを試していただければ幸いです。強制終了時にエラーログには何が表示されますか??

于 2011-12-06T06:10:17.673 に答える
0

エラーは、値をクリアするときに関数が平方を実行しようとしたことが原因です。square 関数を afterTextChanged に移動し、onTextChange で edittext の長さを確認し、ゼロの場合はテキストを 0 に設定します。

于 2011-12-06T06:11:15.717 に答える