2011-01-09 3 views
1

내 PreferencesActivity 내 확장에 사용되는 preferences.xml이 있습니다.webview.clearCache from PreferenceActivity

xml에 webview의 캐시를 지우는 데 사용하려는 또 다른 환경 설정이 있습니다.

그것에는 내가

간단히 말해서

, 나는 webview.clearCache을 실행하고 싶습니다 ... 내 환경 설정에서 항목을 눌러 webview.clearCache 발사하는 방법을 작동하지 않을 수 있지만 키 () 명령을 옵션 메뉴 항목 에서처럼 할 수 있습니다.

그래, 내가 setOnPreferenceClickListener와 같은 것을 onPreferenceClick과 같이 사용해야한다고 생각해. 어떻게? 추가하여 해결

답변

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 카드의 디렉토리/폴더를 삭제할 코드는