package com.google.mcommerce.sample.android.chapter07.preferences;
// This file is MainActivity.java
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.res.Resources;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.TextView;
import com.google.mcommerce.sample.android.R;
public class PreferencesWithDefaultsActivity extends Activity {
private Resources resources;
private SharedPreferences prefs;
private TextView tv = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.c07_preferences_layout);
resources = this.getResources();
// 获得默认的preference对象
prefs = PreferenceManager.getDefaultSharedPreferences(this);
Log.i("PreferencesWithDefaultsActivity", "0");
// prefs.edit().clear().commit();
// 在应用目录中设置配置文件缺省值
PreferenceManager.setDefaultValues(this, R.xml.flightoptions_single,
false);
Log.i("PreferencesWithDefaultsActivity", "1");
tv = (TextView) findViewById(R.id.text1);
setOptionText();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.mainmenu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.menu_prefs) {
Intent intent = new Intent().setClass(this,
FlightPreferenceSingle.class);
this.startActivityForResult(intent, 0);
}
return true;
}
@Override
public void onActivityResult(int reqCode, int resCode, Intent data) {
super.onActivityResult(reqCode, resCode, data);
setOptionText();
}
private void setOptionText() {
String option = prefs
.getString(resources
.getString(R.string.selected_flight_sort_option), null);
String[] optionText = resources
.getStringArray(R.array.flight_sort_options);
tv.setText("option value is " + option + " ("
+ optionText[Integer.parseInt(option)] + ")");
}
}