0
我有一個Android PreferencesAcitivty,允許用戶將其首選項重置爲默認值。下面的代碼工作正常,但在調用editor.clear()和editor.commit()之後,Preferences界面不會更新。如何在不重新加載活動或調用onCreate(null)的情況下實現此目的?清除並提交更改後,刷新首選項活動
public class Preferences extends PreferenceActivity {
/* Called when someone specifies to view the options menu */
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Set
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.settings, menu);
// Return
return true;
}
/* Handle options menu selections */
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle item selection
switch (item.getItemId()) {
case R.id.itemReset:
// Reset
// Build
DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){
case DialogInterface.BUTTON_POSITIVE:
//Yes button clicked
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = preferences.edit();
editor.clear();
editor.commit();
**// TODO: Refresh preferences**
break;
case DialogInterface.BUTTON_NEGATIVE:
//No button clicked
break;
}
}
};
// Display
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Are you sure you want to reset your settings back to their default options?").setPositiveButton("Yes", dialogClickListener).setNegativeButton("No", dialogClickListener).show();
// Return
return true;
default:
return super.onOptionsItemSelected(item);
}
}
/* Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
// Super
super.onCreate(savedInstanceState);
// Call
addPreferencesFromResource(R.xml.preferences);
}
}
對不起,不知道你是否理解我的問題。我在首選項活動的選項菜單中創建了一個重置功能,可將我的所有首選項清除爲其默認值,並且我希望界面進行更新以反映這一點。 –