У меня есть preferences.xml, который используется в моем расширении PreferencesActivity.
У меня есть другое предпочтение в xml, которое я хотел бы использовать для очистки кеша веб-представления.
У него есть ключ, хотя я не могу разобраться, как запустить 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;
}
});
Спасибо за ваш собственный ответ:) Это было полезно для меня.
Кроме того: ниже приведен код, когда вы хотите удалить каталог/папку на SD-карте из ваших настроек в стиле xml:
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() );
}
}