Проблема с условием if в Spinner Android - PullRequest
0 голосов
/ 04 августа 2011

Я занимаюсь разработкой небольшого приложения для Android. Теперь у меня есть проблема, и я не знаю, почему это ... Я хотел создать собственную функцию Calendar для вставки дат. Я могу выбрать дату и время с помощью выбора даты и времени. теперь я хотел бы добавить счетчик, где можно выбирать между различными продолжительностью для даты .... но предложение if внутри счетчика работает только в том случае, если я выбираю второй раз и другой элемент, а не первый раз

Вот часть моего кода: duration.setOnItemSelectedListener (new OnItemSelectedListener () {

            public void onItemSelected(AdapterView<?> av, View v, int position, long l) {

                if(av.getItemAtPosition(position).equals("10 Minuten")){
                    dateInMS2 = (dateInMS1 + 600000);
                }
                else if(av.getItemAtPosition(position).equals("30 Minuten")){
                    dateInMS2 = (dateInMS1 + 1800000);
                }
                else if(av.getItemAtPosition(position).equals("1 Stunde")){
                    dateInMS2 = (dateInMS1 + (1 * 60 * 60 * 1000));
                }
                else if(av.getItemAtPosition(position).equals("2 Stunden")){
                    dateInMS2 = (dateInMS1 + (2 * 60 * 60 * 1000));
                }
                else if(av.getItemAtPosition(position).equals("3 Stunden")){
                    dateInMS2 = (dateInMS1 + (3 * 60 * 60 * 1000));
                }
                else if(av.getItemAtPosition(position).equals("4 Stunden")){
                    dateInMS2 = (dateInMS1 + (4 * 60 * 60 * 1000));
                }
                else if(av.getItemAtPosition(position).equals("5 Stunden")){
                    dateInMS2 = (dateInMS1 + (5 * 60 * 60 * 1000));
                }
                else if(av.getItemAtPosition(position).equals("6 Stunden")){
                    dateInMS2 = (dateInMS1 + (6 * 60 * 60 * 1000));
                }
                else if(av.getItemAtPosition(position).equals("ganztägig")){
                    dateInMS2 = (dateInMS1 + (24 * 60 * 60 * 1000));
                }
                else{
                    dateInMS2 = (d1.getTime() + (1 * 60 * 60 * 1000));
                }

            }


            @Override
            public void onNothingSelected(AdapterView<?> av) {
                // TODO Auto-generated method stub
                //dateInMS2 = (d1.getTime() + (1 * 60 * 60 * 1000));                    
            }

        });

Это метод onClick для кнопки, которую я нажимаю, чтобы вставить дату ..... dateInMS1 - время выбора времени в миллисекундах. dateInMs2 - время выбора времени плюс миллисекунды для выбранной продолжительности.

Кто-нибудь может мне помочь?!

1 Ответ

0 голосов
/ 04 августа 2011

Я не совсем понимаю, что вы подразумеваете под:

но условие if внутри счетчика работает только в том случае, если я выбрал второй раз и другой элемент, отличный от первого

Но я понимаю, почему это не работает, потому что вы создаете onclicklistener в коде ваших кнопок при нажатии метода. Таким образом, спиннер будет реагировать только на выбранный элемент, когда вы уже нажали кнопку. Так что вы должны назвать эту часть.

duration.setOnItemSelectedListener(new OnItemSelectedListener(){

и весь код после этого на создание вашей активности и тогда это будет работать!

Удачи.

...