스피너 값전달 질문입니다.
조회수 930회
고양이 사료량 계산하는 어플만들고있는데
스피너로 애좀 먹고 있습니다.
빌드하여 에뮬레이터 돌리면 그냥 스피너에 첫번째 배열의 값으로만 저장되고
이후에 다른 배열을 선택하고 버튼을 눌러도 첫번째 배열값으로만 결과가 나옵니다.
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);
}
});
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
스피너를 선택할 때마다
스피너의 리스너 중에서 onItemSelected이 호출되는겁니다.
https://developer.android.com/guide/topics/ui/controls/spinner?hl=ko
이 글을 읽어보시는걸 추천드립니다.
댓글 입력