我已经有了正确的东西来播放 RAW 中的音频文件,并且玩弄它,但是,这就是我想要做的:我想让用户从 sdcard 中选择音频。并选择它,以便应用程序为他播放。我有 :
<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!请原谅我的新手信息,非常感谢任何指南。