【问题标题】:Preferences - using media files, images首选项 - 使用媒体文件、图像
【发布时间】:2011-12-06 00:00:10
【问题描述】:
我是一名新开发人员,所以我的问题可能过于基本。
我寻找定义声音偏好的示例。例如,用户可以选择启动应用程序的声音类型。可以有这样一个 RingtonPreference widjet,所以用户可以选择一个声音。
据我所知,首选项支持基本类型:布尔、字符串、浮点、长整数和整数。设计首选项的最佳方式是:在 entryValues 中存储声音的名称(字符串)、来自资源类的文件地址(整数)或其他方式。
请提供一个简短的代码示例。
提前致谢!
首先感谢您快速详细的回答!
我想安排声音列表:必须有一个“无”,包含文件夹“原始”的声音列表,从不同位置添加新声音的选项和两个按钮:“设置”和“取消”。当用户触摸列表中的一项时 - 声音开始播放。
提供 android 库的标准小部件存在一个小问题。 “ListPreference”是不合适的,因为在触摸其中一个项目时——选择项目并关闭列表,“没有设置和取消按钮”。
“RingtonPreference”也不合适——我没有成功添加一些东西到列表中。
如何构建自定义首选项布局,即选择的选项将被保存以及标准小部件。请提供一个简短的代码示例。提前致谢!
【问题讨论】:
标签:
android
file
path
preferences
audio
【解决方案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
}