2011-06-10 163 views
0

我遇到以下問題:選擇歌曲在微調然後播放歌曲Android開發

我有一個微調不同的歌曲在它。我想要做的是,當您從微調框中選擇一首歌曲時,媒體播放器將播放該歌曲。我瞭解如何進行mediaplayer編碼,但無法鏈接它。我需要爲每首歌曲或參考ID提供某種價值,然後玩家才能使用它?謝謝。

即我的代碼(僅微調):

package com.example.spinnertutorial; 

公共類SpinnerTutorial延伸活動{ /**當首先創建活動調用。 */

String[] spinnerItems = { 
     "Song 1", "Song 2", "Song 3", "Song 4", "Song 5" 
}; 



Spinner sp; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    ArrayAdapter<String> adapter = 
     new ArrayAdapter<String> (this, 
       android.R.layout.simple_spinner_dropdown_item, spinnerItems); 

    sp = (Spinner)findViewById(R.id.spinner1); 
    sp.setAdapter(adapter); 

    sp.setOnItemSelectedListener(new OnItemSelectedListener(){ 

     public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3){ 
      int item = sp.getSelectedItemPosition(); 
      Toast.makeText(getBaseContext(), "You have selected the playlist: " +spinnerItems[ item], Toast.LENGTH_SHORT).show(); 
     } 

     public void onNothingSelected(AdapterView<?> arg0){ 
     } 
    }); 

}}

回答

0
  • 如果您在使用微調歌曲文件名,你可以檢索那些名字(getSelectedItem()),並直接在MediaPlayer使用它們。

  • 如果您Spinner有歌曲名稱或任何其他字符串無關的歌曲文件名,然後用選擇指數(使用getSelectedItemPosition())從第二陣列檢索文件名,或者使用與歌曲標題的HashMap和歌曲文件名稱。 Bundle類是一個不錯的選擇。

+0

如何設置第二個數組來存儲文件的位置?謝謝 – Splitusa 2011-06-10 02:24:48

+0

只需創建一個字符串數組,其文件名與創建標題數組的順序相同。當然,這將適用於固定大小的數組。使用Bundle選項來動態創建值。 – Aleadam 2011-06-10 02:30:27

+0

或者,您可以創建一個小類來存儲這兩個字符串,並在您的微調器中使用一個自定義適配器 – Aleadam 2011-06-10 02:31:26