안드로이드스튜디오 editText
조회수 670회
+버튼을 누르면 3000이 올라가고 -버튼을 누르면 3000이 내려가요 버튼 누른거에 따라 총액이 계산되는 프로그램이에요ㅠㅠ 버튼 누르는게 번거로워서 에디트텍스트에 바로 숫자를 쳐도 계산되게끔 만들고 싶어요 예를 들면 10을 치면 총액이 30000원으로 계산되게끔용..
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Button bh1, bh2, bca;
TextView tr;
EditText th;
String sh;
int nh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bh1 = (Button)findViewById(R.id.button);
bh2 = (Button)findViewById(R.id.button2);
bca = (Button)findViewById(R.id.button3);
th=(EditText)findViewById(R.id.editText);
tr=(TextView)findViewById(R.id.textView);
nh = 0;
bh1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
nh = nh + 1;
th.setText(nh+"");
}
});
bh2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
nh = nh - 1;
th.setText(nh+"");
}
});
bca.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
tr.setText("총액:"+(nh*3000)+"원");
}
});
}
}
이런식으로 했는데 버튼은 계산이 되는데 에이트텍스트에 숫자를 치면 계산이 안돼요ㅠㅠ 제발 도와주세요ㅠㅠ
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
버튼을 누르면 반응하는 리스너를 추가한 것처럼 에딧텍스트에도 텍스트가 바뀔 때 마다 반응하는 리스너를 추가해주시면 될 것 같습니다.
th.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // 입력되는 텍스트에 변화가 있을 때 nh = parseInt(s.toString()); tr.setText("총액:"+(nh*3000)+"원"); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void afterTextChanged(Editable arg0) { } }); int parseInt(String numberString) { try { return Integer.parseInt(numberString); } catch (NumberFormatException nfe) { return 0; } }
- paserInt(s.toString()); 이 코드만 치면 에러가 나요ㅠㅠㅠ 똑같이 하는데도 왜그럴까요.. 밑에 parseInt이것두욤.. 다른 방법 없을까요ㅠㅠㅠㅠ 죄송해요ㅠㅠ 알 수 없는 사용자 2019.10.21 18:25
- 아... 밑에 있는 parseInt 함수를 onCreate 함수 영역 밖에서, MainActivity 클래스 영역 안에서 적으셔야할겁니다. 김은기 2019.10.22 12:59
- paserInt <= 이부분 오타냈었네요. int parseInt(String numberString) 이 함수를 정의하고 해당 함수를 사용하는겁니다. 답변은 수정하겠습니다 김은기 2019.10.22 12:59
댓글 입력