SWE Browser中有xml/download_settings_preferences.xml, 但在代码中却没有调用,导致“设置”中没有”选择下载路径“功能。
在com.android.browser.preferences.GeneralPreferencesFragment增加”选择下载路径“功能
/*add for download path choose*/
private void onInitdownloadSettingsPreference() { addPreferencesFromResource(R.xml.download_settings_preferences); PreferenceScreen downloadPathPreset = (PreferenceScreen) findPreference(PreferenceKeys.PREF_DOWNLOAD_PATH); downloadPathPreset.setOnPreferenceClickListener(onClickDownloadPathSettings()); String downloadPath = downloadPathPreset.getSharedPreferences(). getString(PreferenceKeys.PREF_DOWNLOAD_PATH, BrowserSettings.getInstance().getDownloadPath()); String downloadPathForUser = DownloadHandler.getDownloadPathForUser(this.getActivity(), downloadPath); downloadPathPreset.setSummary(downloadPathForUser); } private Preference.OnPreferenceClickListener onClickDownloadPathSettings() { return new Preference.OnPreferenceClickListener() { public boolean onPreferenceClick(Preference preference) { try { Intent i = new Intent("com.android.fileexplorer.action.DIR_SEL"); GeneralPreferencesFragment.this.startActivityForResult(i, DOWNLOAD_PATH_RESULT_CODE); } catch (Exception e) { String err_msg = getResources().getString(R.string.activity_not_found, "com.android.fileexplorer.action.DIR_SEL"); Toast.makeText(getActivity(), err_msg, Toast.LENGTH_LONG).show(); } return true; } }; }
/*end add */
public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); mAdvFrag.onActivityResult(requestCode,resultCode, data); /*add for download path choose*/ if (requestCode == DOWNLOAD_PATH_RESULT_CODE) { if (resultCode == Activity.RESULT_OK && data != null) { String downloadPath = data.getStringExtra("result_dir_sel"); if (downloadPath != null) { PreferenceScreen downloadPathPreset = (PreferenceScreen) findPreference(PreferenceKeys.PREF_DOWNLOAD_PATH); Editor editor = downloadPathPreset.getEditor(); editor.putString(PreferenceKeys.PREF_DOWNLOAD_PATH, downloadPath); editor.apply(); String downloadPathForUser = DownloadHandler.getDownloadPathForUser( this.getActivity(), downloadPath); downloadPathPreset.setSummary(downloadPathForUser); } return; } } /*end add*/ }
onCreate中调用onInitdownloadSettingsPreference(),将download_settings_preferences.xml加到布局中。
public void onCreate(Bundle savedInstanceState) { ...... // Load the XML preferences file addPreferencesFromResource(R.xml.general_preferences); ...... onInitdownloadSettingsPreference();//add for download path chhoose }