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
}

Browser增加下载路径选择功能的更多相关文章

  1. ArcGIS Server 增加缓存路径

    Server缓存服务,由于缓存文件经常比较大,默认放在C盘下容易导致磁盘空间不够,因此Server提供了增加缓存路径的方法来解决该问题. 增加的路径有两种,一种是Server所在服务器增加一个和原缓存 ...

  2. 解决jsp下载文件,迅雷下载路径不显示文件名称的问题

    如果浏览器安装了迅雷的插件,在jsp页面调用java后台实现文件下载功能时,会自动弹出迅雷下载,迅雷的下载路径会显示.do或者.xhtml之类的,为了解决这个问题,jsp页面修改如下: 写一个< ...

  3. Spring Framework jar官方直接下载路径

    SPRING官方网站改版后,建议都是通过 Maven和Gradle下载,对不使用Maven和Gradle开发项目的,下载就非常麻烦,下给出Spring Framework jar官方直接下载路径: h ...

  4. servlet下载,解决文件名中有中文下载路径出现乱码不能正常下载问题

    方法很多种,我只试用了两种. 主页面JSP中引入下载功能所需的js文件.引入的时候设置编码格式例如 <script type="text/javascript" charse ...

  5. python selenium设置chrome的下载路径

    python可以通过ChromeOptions设置chrome参数,如下载路径等,代码如下(python 3.6.7): #-*-coding=utf-8-*- from selenium impor ...

  6. ubuntu换系统下载路径源

    ubuntn默认下载路径的源是国外的下载很慢换成国内的下载路径会好很多 在ubuntu应用搜索框(左上脚那个)中输入software 1.software&Updates 应用点击softwa ...

  7. chrome crx下载路径

    chrome crx下载后会被删除,可在检查时粘贴出来,下载路径在: %localappdata%\Google\Chrome\User Data\Webstore Downloads 参考:http ...

  8. 设置IE浏览器的默认下载路径

    实现效果: 知识运用: Default Download Directory键 实现代码: private void button2_Click(object sender, EventArgs e) ...

  9. selenium 下载文件设置下载路径

    Chrome 文件下载 Chrome浏览器类似,设置其options: download.default_directory:设置下载路径 profile.default_content_settin ...

随机推荐

  1. HoloLens开发笔记之Gesture input手势输入

    手势是HoloLens三个首要输入形式之一.一旦你使用凝视定位了一个全息图像,手势允许你与它交互.手势输入允许你使用手或者点击器原生地与全息图像交互. 手势之外,你也可以在应用中使用语音输入来交互. ...

  2. 极限编程之TDD

         测试驱动开发(Test-Driven Development,TDD)是通过测试定义所要开发的功能的接口,然后实现功能的开发过程. Test-Driven Development(TDD), ...

  3. No.6__C#

    第六周 周一:今天特别开心,因为来公司的第一个任务完成了,虽然是在组长的帮助下完成的.但是,还是有很多收获,在实际工作中遇到的问题和麻烦远远超出了书本知识 有些问题简直让人抓狂.现在,上班空余期间,也 ...

  4. c/c++运算顺序问题

    发现没弄清楚这个问题的人很多,连我们c++老师都没弄清楚,转载一篇文章,以及C++ Primer原文. 裘宗燕:C/C++ 语言中的表达式求值 经常可以在一些讨论组里看到下面的提问:“谁知道下面C语句 ...

  5. mac配置vim-go

    基本的设置信息(参考网址:http://hessian.cn/p/1026.html): "还是配置/.vimrc文件. syn on "语法支持 set laststatus=2 ...

  6. 8.adr与ldr伪指令的区别

    ldr和adr都是伪指令,区别是ldr是长加载.adr是短加载. 重点:adr指令加载符号地址,加载的是运行时地址: ldr指令加载符号地址时,加载的是链接地址.

  7. Provisional headers are shown,本地测试成功,服务器运行却失败

    基于MVC的项目 具体情况是一个页面在访问的时候进不了首页,但详细页面却可以进去 下面说说解决方法和思路,以便找出问题所在 第一:把服务器代码下载到本地运行,代码是否出错,出错了,问题找到了,没出错接 ...

  8. nginx的Location的总结以及rewrite规则的总结

    Location的语法: location 有”定位”的意思, 根据Uri来进行不同的定位. 在虚拟主机的配置中,是必不可少的,location可以把网站的不同部分,定位到不同的处理方式上. 比如,  ...

  9. Reactjs 入门基础(三)

    State 和 Props以下实例演示了如何在应用中组合使用 state 和 props .我们可以在父组件中设置 state, 并通过在子组件上使用 props 将其传递到子组件上.在 render ...

  10. ios block和函数的区别

    block是封装了一段代码的OC对象,可以被设为Property, 在调用block的地方block都会被替换成相应的代码,相当于内联函数. 函数可以使代码更加整洁易读,使用block会使代码可读性变 ...