편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2020.06.07

    스피너 값전달 질문입니다.


    고양이 사료량 계산하는 어플만들고있는데

    스피너로 애좀 먹고 있습니다.

    빌드하여 에뮬레이터 돌리면 그냥 스피너에 첫번째 배열의 값으로만 저장되고 이후에 다른 배열을 선택하고 버튼을 눌러도 첫번째 배열값으로만 결과가 나옵니다. 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);
                }
            });
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.06.06

    스피너 값전달 질문입니다.


    고양이 사료량 계산하는 어플만들고있는데

    스피너로 애좀 먹고 있습니다.

    빌드하여 에뮬레이터 돌리면 그냥 스피너에 첫번째 배열의 값으로만 저장되고 이후에 다른 배열을 선택하고 버튼을 눌러도 첫번째 배열값으로만 결과가 나옵니다. 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);
            }
        });