onActivityResult未从首选项中调用

时间:2014-09-05 11:22:17

标签: android preferences onactivityresult filepicker

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

0 个答案:

没有答案