2011-12-06 35 views
0

我是一名新開發人員,所以我的問題可能太多了。 我尋找定義聲音偏好的例子。例如,用戶可以選擇啓動應用程序的聲音類型。可以有這樣一個RingtonPreference widjet,所以用戶可以選擇一個聲音。 據我所知,首選項支持基本類型:布爾,字符串,浮點數,長整數和整數。什麼樣的方式是最好的設計偏好:存儲在entryValue名稱如果聲音(字符串),來自Resourse類(整數)的文件的地址,或其他方式。 請提供一個簡短的代碼示例。 在此先感謝!首選項 - 使用媒體文件,圖像

首先感謝您的快速和詳細的答案! 我想要安排聲音列表:必須有一個「無」,包含文件夾「原始」的聲音列表,從不同位置添加新聲音的選項以及兩個按鈕:「設置」和「取消」。當用戶觸摸列表中的一個項目時 - 聲音開始播放。 提供android庫的標準小部件存在一個小問題。 「ListPreference」不合適,因爲觸摸其中一個項目 - 選擇項目並關閉列表,「沒有按鈕設置和取消」。 「RingtonPreference」也不合適 - 我沒有成功添加一些內容。 如何構建自定義首選項佈局,即選擇的選項將被保存以及標準小部件。請提供一個簡短的代碼示例。提前致謝!

+0

我發現我的問題有一些很好的消除。 http://stackoverflow.com/questions/4505845/concise-way-of-writing-new-dialogpreference-classes –

回答

1

我認爲存儲資源的最佳方式是整數。或者你可以做名字。

我認爲整數更可靠。

所以使用SharedPreference有了這個,你需要去的應用SharedPreference

public class PreferencesDemo extends Activity { 

SharedPreferences app_preferences; 
private int resourceNumber; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    // Get the app's shared preferences 

    SharedPreferences app_preferences = PreferenceManager.getDefaultSharedPreferences(this); 

    resourceNumber = app_preferences.getInt("resourceNumber", 0); 

    if(resourceNumber == 0){ 

    //This means the user hasnt selected a song and you must act accordingly. Or put a resource number where the 0 is do set it to a default song 

    } 

你可能會想創建一個方法把歌曲中的SharedPreference如訪問;

private void createSongResouces(){ 

    SharedPreferences.Editor editor = app_preferences.edit(); 
    //Here you can put as many songs as you want just make sure you call editor.commit(); as i do. 

    editor.putInt("resourceNumber", resourceNumber); 
    editor.commit(); // Very important 
}