Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android PreferenceActivity中的webview.clearCache_Android_Caching_Android Activity_Webview_Preferences - Fatal编程技术网

Android PreferenceActivity中的webview.clearCache

Android PreferenceActivity中的webview.clearCache,android,caching,android-activity,webview,preferences,Android,Caching,Android Activity,Webview,Preferences,我有preferences.xml,它用于我的PreferencesActivity扩展 我在xml中还有另一个首选项,我想用它来清除webview的缓存 它有一个键,但我无法通过按“首选项”中的条目来确定如何启动webview.clearCache 简而言之,我想从我的首选项屏幕运行webview.clearCache()命令,就像从选项菜单项运行一样 好的,我想我必须使用类似setOnPreferenceClickListener和onPreferenceClick的东西,但是如何使用呢?通

我有preferences.xml,它用于我的PreferencesActivity扩展

我在xml中还有另一个首选项,我想用它来清除webview的缓存

它有一个键,但我无法通过按“首选项”中的条目来确定如何启动webview.clearCache

简而言之,我想从我的首选项屏幕运行webview.clearCache()命令,就像从选项菜单项运行一样

好的,我想我必须使用类似setOnPreferenceClickListener和onPreferenceClick的东西,但是如何使用呢?

通过添加:

    Preference myPref = findPreference("myPref");
    myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {

        @Override
        public boolean onPreferenceClick(Preference preference) {
            MyActivity.mWebView.clearCache(true);
            return false;
        }
    });

谢谢你自己的回答:)这对我很有用

此外:下面是从xml样式首选项中删除sd卡上的目录/文件夹时的代码:

    public class Preferences extends PreferenceActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);

        Preference myPref = findPreference("myPref");
        myPref.setOnPreferenceClickListener(new OnPreferenceClickListener() {

            @Override
            public boolean onPreferenceClick(Preference preference) {
                File sdcard = Environment.getExternalStorageDirectory();
                String sdcardPath = sdcard.getAbsolutePath();
                File mDbFile = new File(sdcardPath + "/myPath/");
                if(mDbFile.exists()) {
                    deleteDirectory(mDbFile);
                }
                return false;
            }
        });
    }

    private static boolean deleteDirectory(File path) {
        if( path.exists() ) {
          File[] files = path.listFiles();
          for(int i=0; i<files.length; i++) {
             if(files[i].isDirectory()) {
               deleteDirectory(files[i]);
             }
             else {
               files[i].delete();
             }
          }
        }
        return( path.delete() );
      }
}
公共类首选项扩展了PreferenceActivity{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
首选项myPref=FindReference(“myPref”);
myPref.setOnPreferenceClickListener(新的OnPreferenceClickListener(){
@凌驾
公共布尔值打开首选项单击(首选项){
文件sdcard=Environment.getExternalStorageDirectory();
字符串sdcardPath=sdcard.getAbsolutePath();
File mDbFile=新文件(sdcardPath+“/myPath/”;
如果(mDbFile.exists()){
删除目录(mDbFile);
}
返回false;
}
});
}
私有静态布尔删除目录(文件路径){
if(path.exists()){
File[]files=path.listFiles();
对于(int i=0;i