고양이 사료량 계산하는 어플만들고있는데
스피너로 애좀 먹고 있습니다.
빌드하여 에뮬레이터 돌리면 그냥 스피너에 첫번째 배열의 값으로만 저장되고
이후에 다른 배열을 선택하고 버튼을 눌러도 첫번째 배열값으로만 결과가 나옵니다.
if (button != null)
로해보고 해봤는데도 그냥 에뮬레이터 실행하자마자 스피너에 첫번째배열로만
값이 저장되고 이후에 바꿔도 바꿔지지를 않네요 이를 어쩌면 좋죠??
public class MainActivity extends AppCompatActivity {
double gaJung;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = findViewById(R.id.button);
String[] items = new String[8];
items[0] = "4개월 미만";
items[1] = "4~6개월";
items[2] = "7~12개월";
items[3] = "중성화한 성묘";
items[4] = "일반 성묘";
items[5] = "운동량이 많은 성묘";
items[6] = "노묘";
items[7] = "비만묘";
// (밑에부터) 스피너 쓰기위해 쓰는 코드 //
final Spinner spinner = findViewById(R.id.spinner); // 스피너 초기화
ArrayAdapter<String> adapter = new ArrayAdapter<String>( // 배열을 스트링타입으로 쓰겠다.
this, android.R.layout.simple_spinner_item, items);
adapter.setDropDownViewResource(
android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
}); // 스피너 쓰기위한 어뎁터 메소드 선언부
String selectedItemName = spinner.getSelectedItem().toString();
if (selectedItemName.equals("노묘")) {
gaJung = 0.7;
} else if (selectedItemName.equals("비만묘")) {
gaJung = 0.8;
} else if (selectedItemName.equals("4개월 미만")) {
gaJung = 3.0;
} else if (selectedItemName.equals("4~6개월")) {
gaJung = 2.5;
} else if (selectedItemName.equals("7~12개월")) {
gaJung = 2.0;
} else if (selectedItemName.equals("중성화한 성묘")) {
gaJung = 1.2;
} else if (selectedItemName.equals("일반 성묘")) {
gaJung = 1.4;
} else if (selectedItemName.equals("운동량이 많은 성묘")) {
gaJung = 1.6;
}
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
double Der = 10 * gaJung;
String str = String.valueOf(Der);
showToast(str);
}
});