ユーザーが入力を変更するたびに再計算しようとしているので、TextWatcherを使用しました。テキストが変更されたときにアプリケーションが起動したときに計算され、新しい値を入力したときに再計算されません。誰かが私が間違っていることを教えてもらえますか?「onTextChanged」の使用は正しいので、計算全体をそのプロシージャに入れる必要がありますか、それとも変更する変数1と2を呼び出すだけですか?スピナーは無視してください。前もって感謝します。
パブリッククラスAndroidActivityはActivityを拡張し、TextWatcherを実装します{
private Spinner spinner1;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pounds);
addListenerOnSpinnerItemSelection();
int one = 0;
int two = 0;
try{
EditText one100lbs = (EditText) findViewById(R.id.one100lbs);
one = Integer.valueOf(one100lbs.getText().toString().trim());
}
catch (NumberFormatException e)
{
one = -1;
}
try{
EditText tenPounds = (EditText) findViewById(R.id.tenPounds);
two = Integer.valueOf(tenPounds.getText().toString().trim());
}
catch (NumberFormatException e)
{
two = -1;
}
int result = one + two;
TextView textView = (TextView) findViewById(R.id.editText1);
textView.setText(String.valueOf(result));
}
//create spinner
public void addListenerOnSpinnerItemSelection() {
spinner1 = (Spinner) findViewById(R.id.other_spinner);
spinner1.setOnItemSelectedListener(new CustomOnItemSelectedListener());
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
@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) {
// TODO Auto-generated method stub
int one = 0;
int two = 0;
try{
EditText one100lbs = (EditText) findViewById(R.id.one100lbs);
one = Integer.valueOf(one100lbs.getText().toString().trim());
}
catch (NumberFormatException e)
{
one = -1;
}
try{
EditText tenPounds = (EditText) findViewById(R.id.tenPounds);
two = Integer.valueOf(tenPounds.getText().toString().trim());
}
catch (NumberFormatException e)
{
two = -1;
}
int result = one + two;
TextView textView = (TextView) findViewById(R.id.editText1);
textView.setText(String.valueOf(result));
}
}