I keep getting a nullpoint error from my preferenceactivity i have no
idea whats wrong. I debug and the saveInstancestate is coming in null
for some reason, but it may be something else.

public class SettingsFrontEnd extends PreferenceActivity {
    public static final String NO_SELECTION = "0&#8243";

    public static final String PASSWORD_KEY = "PASSWORDKEY";
    public static final String SELECTED_TARGET_KEY =
"SelectedTargetKey";
    public final String QUICK_CONTACT_KEY = "QUICK_CONTACT_KEY";

    private android.content.SharedPreferences.Editor editor;
    private HelpiDB mDbHelper;

    private EditTextPreference passwordPreference;

    private SharedPreferences pref;

    private CheckBoxPreference quickcontactPreference;
    private ListPreference targets;

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main_menu, menu);

        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.settings_menu:

            break;
        case R.id.contact_menu:
            if (targets.getValue().equals(NO_SELECTION)) {
                Toast.makeText(this, "Choose a Main COntact", 
Toast.LENGTH_LONG).show
();
            } else {
                Intent myIntent = new Intent(SettingsFrontEnd.this,
ContactFrontEnd.class);
                startActivityForResult(myIntent, 0);
            }
            break;
        case R.id.map_menu:
            if (targets.getValue().equals(NO_SELECTION)) {
                Toast.makeText(this, "Choose a Main COntact", 
Toast.LENGTH_LONG).show
();
            } else {
                Intent myIntent = new Intent(SettingsFrontEnd.this,
ContactFrontEnd.class);
                startActivityForResult(myIntent, 0);
            }
            break;
        case R.id.insert_menu:
            if (targets.getValue().equals(NO_SELECTION)) {
                Toast.makeText(this, "Choose a Main COntact", 
Toast.LENGTH_LONG).show
();
            } else {
                Intent myIntent = new Intent(SettingsFrontEnd.this,
InsertFrontEnd.class);
                startActivityForResult(myIntent, 0);
            }
            break;

        default:
            // put your code here
        }
        return false;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setPreferenceScreen(createPreferenceHierarchy());

        pref
            .registerOnSharedPreferenceChangeListener(new
SharedPreferences.OnSharedPreferenceChangeListener() {

                @Override
                public void onSharedPreferenceChanged(SharedPreferences
sharedPreferences,
                                                      String key) {
                    if (key.equals(SELECTED_TARGET_KEY)) {
                        editor = pref.edit();
                        editor.putString(key, targets.getValue());
                    }
                    if (key.equals(PASSWORD_KEY)) {
                        editor = pref.edit();
                        editor.putString(key, passwordPreference.getText());
                    }
                    if (key.equals(QUICK_CONTACT_KEY)) {
                        editor = pref.edit();
                        editor.putBoolean(QUICK_CONTACT_KEY,
                                          quickcontactPreference.isChecked());
                    }

                }
            });
    }

    private PreferenceScreen createPreferenceHierarchy() {
        PreferenceScreen root = getPreferenceManager().createPreferenceScreen
(this);
        PreferenceCategory dialogBasedPrefCat = new PreferenceCategory(this);
        dialogBasedPrefCat.setTitle(R.string.title_preferences);
        root.addPreference(dialogBasedPrefCat);
        // builds list from DB
        mDbHelper = new HelpiDB(this);
        mDbHelper.open();
        Cursor c = mDbHelper.getCheckedContacts();
        startManagingCursor(c);
        int count = c.getCount();
        CharSequence[] entries = new CharSequence[count];
        CharSequence[] entryValues = new CharSequence[count];
        c.moveToFirst();
        for (int i = 0; i < count; i++) {
            entries[i] = c.getString(c.getColumnIndexOrThrow
(HelpiDB.KEY_NAME));
            entryValues[i] = c.getString(c.getColumnIndexOrThrow
(HelpiDB.KEY_ID));
            c.moveToNext();
        }
        targets = new ListPreference(this);
        targets.setEntries(entries);
        targets.setEntryValues(entryValues);
        targets.setDefaultValue(NO_SELECTION);
        targets.setDialogTitle("Main Contact");

        targets.setKey(SELECTED_TARGET_KEY);
        targets.setTitle("Main Contact");
        targets.setSummary("First person contacted using HelpiCall");
        dialogBasedPrefCat.addPreference(targets);
        // add other preference screens
        passwordPreference = new EditTextPreference(this);
        passwordPreference.setTitle("Password");
        passwordPreference.setSummary("Password need for others to find
you");
        passwordPreference.setDialogTitle("Password");
        passwordPreference.setKey(PASSWORD_KEY);
        root.addPreference(passwordPreference);

        quickcontactPreference = new CheckBoxPreference(this);
        quickcontactPreference.setTitle("Quick Contact");
        quickcontactPreference.setSummary("HelpiCall upon start up");
        quickcontactPreference.setDefaultValue(false);
        quickcontactPreference.setKey(QUICK_CONTACT_KEY);
        root.addPreference(quickcontactPreference);

        return root;
    }

}

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to