2011-01-09 3 views
1

私はPreferencesActivityの拡張で使用されるpreferences.xmlを持っています。webview.clearCacheからPreferenceActivity

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

おかげで:)それは私のために便利でした。また

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()); 
     } 
} 
:以下、あなたのXMLスタイルの好みからSDカード上のディレクトリ/フォルダを削除するコードがあります
関連する問題