0

SharedPreferences を変更する必要があるアクティビティがあります。

public class AddingEmail extends ListActivity implements OnClickListener{   

    private String newMail;
    private SharedPreferences prefs;
    private PreferenceManager prefMan;
    private EditText emailAdd;
    private EditText emailDel;
    private ArrayList<String> prefList;


@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.addingemail);
    Log.d("On Addig EMAIL ACTIVITY","on Create");

    String name = "com.example.daemon3_preferences";
    prefs = this.getSharedPreferences(name, MODE_PRIVATE);

そして、これがPreferenceScreenです..

public class PreferencesScreen extends PreferenceFragment{

    private final String TAG = "PreferencesScreen";
    private Set<String> emails;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "OnCreate");

        addPreferencesFromResource(R.xml.prefs);

そして、私はこのエラーがあります:

java.lang.IllegalArgumentException: ファイル /data/data/com.example.daemon3/shared_prefs/com.example.daemon3_preferences.xml.xml にパス区切り文字が含まれています

.xml ではなく .xml.xml を使用するのはなぜですか?

4

1 に答える 1

2

ここでコメント スレッドを正式な回答に分割します。


呼び出す代わりに

String name = "com.example.daemon3_preferences";
prefs = this.getSharedPreferences(name, MODE_PRIVATE);

これを呼び出します:

prefs = PreferenceManager.getDefaultSharedPreferences(this);

PreferenceFragmentで設定を保存するPreferenceManagerため、 でデフォルトの設定を開こうとするとgetSharedPreferences、 に干渉して、PreferenceManagerその特定の例外が発生する可能性があります。

于 2012-09-20T15:16:55.610 に答える