0

我已经有了正确的东西来播放 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!请原谅我的新手信息,非常感谢任何指南。

4

0 回答 0