帮助定位微调器

时间:2011-04-22 21:40:22

标签: android spinner

在我的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 :(得分:0)

我可以想到你可以使用的解决方法 -

您可以在数组中使用虚拟条目。假如你想要将一组行星放入一个微调器中,那么就可以将数组作为 -

List of Planets
Mars
Earth
Venus
..

当应用程序启动时,它将显示一条信息性消息“行星列表”,在您的回调中,您可以使用代码 -

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