4
在我的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 ...包含在某種類型的更改選擇中,如果存在這樣的情況?
你可以添加playOnce國旗onClickListener,爲進入微調的方式,那麼你可以將該標誌設置爲false,當你玩了,真被點擊的微調時。 – 2011-04-22 21:50:48
我刪除了我的答案 - 您是正確的,即使Spinner擴展AdapterView,也無法在Spinner中使用setOnItemClickListener。現在我記得的東西 - onItemSelected總是在Spinner首次填充時調用(即使沒有用戶交互操作)。我認爲這是Android Spinner源代碼中的一個錯誤。這並不總是一個問題,但在顯然播放聲音的情況下。不知道你會如何解決它。如果我想出點什麼,我會讓你知道的。對不起,我不能有更多的幫助。 – Squonk 2011-04-24 20:32:18
是否有任何其他對象的行爲像一個微調/下拉,但會有一個OnItemClcickListener? – greydarrah 2011-04-24 22:50:07