3

コード:

public class Preferences extends PreferenceActivity {
public static final String PREF_AUTO_UPDATE = "PREF_AUTO_UPDATE";
public static final String PREF_MIN_MAG = "PREF_MIN_MAG";
public static final String PREF_UPDATE_FREQ = "PREF_UPDATE_FREQ";

SharedPreferences prefs;


@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    Context context = getApplicationContext();

    addPreferencesFromResource(R.xml.userprefs);


}

設定アクティビティに切り替えるたびに、実行時エラーが発生し、アプリがクラッシュします。私が得る痕跡をたどって:

原因:java.lang.ClassCastException:java.lang.Integer

デバッグを行った後、行をコメントアウトするとaddPreferencesFromResourceアプリがクラッシュするのを防ぐことができましたが、(明らかに)UIは読み込まれません。私はこの例を教科書から一行一行コピーしているので、私の人生で何が欠けているのか理解できません。

4

2 に答える 2

0

リソースタイプを確認してください。それが問題になる可能性があります。

于 2011-03-31T16:15:36.497 に答える
0

私はこのようなもので遊んでいて、同じようなものをヒットしました。putIntを実行していたことが判明しましたが、プリファレンスを定義するxmlファイルには、関連するキーにフックされたTextEditPreferenceが含まれていました。私が知る限り、TextEditPreferenceはputString / getString(duh)を介してsharedpreferencesファイルと対話することを主張しており、私がどこかで遊んでいたputIntは、app-preferences.xml(/ data / data /)の要素をスタックしていました。 ./shared_prefs/..)、addPreferencesFromResourceを呼び出すたびに設定アクティビティを強制終了します。それがあなたのケースで起こっているかどうかはわかりませんが、userprefsを投稿したら、コードで自分自身がTextEditPreferenceのキーにputIntを使用しているかどうか、または私が(誤って)行っていたようなことをメモしておくと、人々が助けになると思います。

于 2011-04-02T00:57:39.990 に答える