-3

たとえば (1+2 = 3) ですが、(1+2=12) を取得しています。

これが私のコードです

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText ed=(EditText)findViewById(R.id.editText1);

    final EditText ed1=(EditText)findViewById(R.id.editText2);

    ed.addTextChangedListener(new TextWatcher(){

        @Override
        public void afterTextChanged(Editable s) {




        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count,
                int after) {
            // TODO Auto-generated method stub

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before,
                int count) {

            ed1.setText(ed.getText().toString()+2);
        }

    });

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

}
4

5 に答える 5

2

2 つの文字列を連結しようとしているため、出力が結合されます。実行中arithmetic operationに、文字列を整数に解析してから追加します。

   int result=Integer.parseInt(ed.getText().toString())+2);
   ed1.setText(String.valueOf(result);
于 2013-10-10T07:55:02.693 に答える
2

あなたは文字列を持っています。文字列 + 別の文字列 = 文字列文字列. 例: "こんにちは" + "あなた" = "こんにちは";

したがって、文字列を整数に解析して計算を開始します。

于 2013-10-10T07:53:03.263 に答える
0

文字列と整数の間に演算子「+」を使用すると、整数が文字列に変換され、文字列の末尾に追加されます。

あなたが今何をしているかの例を見てみましょう:

String a = "1";
int b = 2;

System.out.println(a+b);

コンソール出力:12

そしてあなたがすべきこと:

int a = 1;
int b = 2;

System.out.println(a+b);

コンソール出力:3

この問題を解決する最も簡単な方法は、コードを次のように変更することです。

public void onTextChanged(CharSequence s, int start, int before, int count) {

    ed1.setText(String.valueOf(Integer.parseInt(ed.getText().toString) + 2));

}

注: チェックされていない文字列の解析は非常に危険です。解析された文字列が int でない場合は例外がスローされる可能性があるため、注意が必要です。.xmlの属性を設定することができandroid:inputType="numberSigned"ますEditText。これにより、ユーザーは int 番号のみを に挿入するよう強制されますEditText
このような:

<EditText 
    android:id="@+id/editText1"
    android:inputType="numberSigned" 
    ... />
于 2013-10-10T08:39:06.670 に答える