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
}