2

我创建了一个 EditTextPreference,现在我想从任何其他活动中获取值。我一直在尝试很多事情,但我无法让它发挥作用。这个值存储在哪里?我怎样才能找回它?

编辑:我想从不同的活动中获取价值,而不是Preferences活动。

settings.xml

<EditTextPreference
    android:title="EditText1"
    android:key="edit1"
    android:defaultValue="0"
    android:dialogIcon="@drawable/fleetespiar"
    android:inputType="number" />

Settings.java (如何在不同的活动中做到这一点)

Preference edit1= findPreference("edit1");
EditTextPreference editt1 = (EditTextPreference) edit1;

System.out.println(String.valueOf(editt.getText().toString()));
4

2 回答 2

2

首先你需要创建一个 的实例SharedPreferences,然后你可以调用getString()它,指定值的键。

于 2012-07-08T19:46:25.267 回答
1

您的值将存储在共享首选项文件中。

检查我下面的小例子:

  1. 在您的 android 项目的res目录(资源)中创建一个xml目录。

  2. 在您的新xml目录中,您必须创建一个包含您的 EditTextPreference 的preference.xml 文件。

        <?xml version="1.0" encoding="utf-8"?>
        <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
            <EditTextPreference
                android:dialogTitle="My preference"
                android:key="pref"
                android:summary="Enter Your Preference"
                android:title="Edit Text Preference" />
        </PreferenceScreen>
    
  3. 现在创建扩展PreferenceActivity的Preferences类。

        import android.content.SharedPreferences;
        import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
        import android.os.Bundle;
        import android.preference.EditTextPreference;
        import android.preference.Preference;
        import android.preference.PreferenceActivity;
    
            public class Preferences extends PreferenceActivity {
    
            @Override
            protected void onCreate(Bundle savedInstanceState) {
                 super.onCreate(savedInstanceState);
                 addPreferencesFromResource(R.xml.preferences);
            }
        }
    
  4. 使用SharedPreference对象插入并获取您的 String 值。

于 2012-07-08T20:25:47.480 回答