android - 帮助选择微调器的时间

标签 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... 包装在某种类型的更改选择中?

最佳答案

我能想到一个您可以使用的解决方法 -

您可以在数组中使用虚拟条目。假设你想将一系列行星放入微调器中,那么你可以将数组设置为 -

List of Planets
Mars
Earth
Venus
..

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

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

关于android - 帮助选择微调器的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5760345/

相关文章:

android - Phonegap 新版本适合 iOS 应用程序开发中的数据库位置

android - 如何设置限制从Android上传图片到数据库MySQL

android - Calabash 使用 Paypal 进行自动化测试

performance - 在没有浏览器显示纺车的情况下加载网站

android - ListSelector 颜色更改(选择列表时)并且还为微调器设置文本颜色(黑色)不起作用

android - Android - 如何在不触发setOnItemSelectedListener的情况下更改微调器值

Android:微调器在 Activity 中工作,但在 Fragment 中不工作

java - gradle 构建因未知主机异常而失败

java - 在android studio中计算GPA

android - 微调器 setOnItemSelectedListener 不触发