2011-01-09 58 views
1

我有preferences.xml這是我的PreferencesActivity的擴展中使用。PreferenceActivity的webview.clearCache

我在xml中有另一個首選項,我想用它來清除webview的緩存。

它有一個關鍵,雖然我不知道如何按我的喜好進入火webview.clearCache ...

概括地說,我想運行webview.clearCache( )命令從我的首選項屏幕,就像一個可以從選項菜單項。

好吧,我想我必須在onPreferenceClick中使用類似setOnPreferenceClickListener的東西,但是如何?

回答

0

加入解決:

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

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

感謝您自己的答案:)這是有用的我。

另外:下面是當你想從你的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()); 
     } 
}