Помогите с выбором времени вращения - PullRequest
4 голосов
/ 23 апреля 2011

В моем приложении для Android у меня есть звук, который я хочу воспроизвести, когда был сделан определенный выбор из счетчика, но я хочу, чтобы он воспроизводил звук, когда пользователь действительно делает правильный выбор (или сразу после него). Моя проблема заключается в том, что, хотя звук и воспроизводится, когда они делают правильный выбор, пока этот выбор остается выбранным, он также воспроизводится при каждом запуске приложения, когда оно должно воспроизводиться ТОЛЬКО в то время, когда оно выбрано. Вот код, который у меня есть сейчас:

    fitnessSpinner = (Spinner) findViewById(R.id.fitness_spinner);
    ArrayAdapter adapter4 = ArrayAdapter.createFromResource( 
        this, R.array.fitness_array, android.R.layout.simple_spinner_item); 
    adapter4.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    fitnessSpinner.setAdapter(adapter4);

    fitnessSpinner.setOnItemSelectedListener(new OnItemSelectedListener() 
    {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long i) {
            Log.d("test", "p: " + position + " " + i);
            if(position == 0) {
                //First Entry
                MediaPlayer mp =  MediaPlayer.create(mContext, R.raw.bowchica);
                mp.start();
            } if(position == 4) {
                MediaPlayer mp =  MediaPlayer.create(mContext, R.raw.debbie2);
                mp.start();
            }
        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {


        }

    });

Как заставить звук перестать играть при каждом запуске приложения? Должен ли я обернуть весь fitnessSpinner.setOnItemSelectedListener ... внутри некоторого типа при выборе изменений, если такая вещь существует?

1 Ответ

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

Я мог бы подумать об обходном пути, который вы могли бы использовать -

Вы можете использовать фиктивную запись в вашем массиве. Скажем, если вы хотите поместить массив планет в счетчик, тогда вы можете получить массив как -

List of Planets
Mars
Earth
Venus
..

Когда приложение запускается, оно будет показывать информативное сообщение как «Список планет», и в вашем обратном вызове вы можете иметь код, подобный -

if(0 != pos){
    //Play a sound
}
...