我已经有正确的东西来播放来自RAW的音频文件,并且愚弄它,但是, 这是我想要做的: 我想让用户从SD卡中选择音频。并选择这样应用程序为他播放。 我有:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
然后在偏好中:我有:
<Preference
android:title="Pick file"
android:key="filePicker" />
然后在ShowPreferenceActivity中我有:
Preference filePicker = (Preference) findPreference("filePicker");
filePicker.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
//Intent intent = new Intent("org.openintents.action.PICK_FILE"); //Intent to start openIntents File Manager
//startActivityForResult(intent, 1);
Log.v("filePicker:", "filePicker got CLICKED");
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("Audio/mp3");
startActivityForResult(intent, 1);
return true;
还有:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//get the new value from Intent data
String newValue = "";
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("filePicker", newValue);
Log.v("filePicker:RESULT:", newValue);
editor.commit();
我确定问题在这里,因为log.v永远不会被调用。 所以无论我在哪里尝试:
SharedPreferences sharedPrefs = PreferenceManager
.getDefaultSharedPreferences(this);
String changedRINGTONE=sharedPrefs.getString("filepicker", "NULL");
changedRINGTONE
为空。而不是我在getString中传递的NULL(使用大写),因为它实际上是null!
请原谅我的新手信息,非常感谢任何指南。