Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:共享首选项中的例外_Android_Sharedpreferences - Fatal编程技术网

Android:共享首选项中的例外

Android:共享首选项中的例外,android,sharedpreferences,Android,Sharedpreferences,在我的共享偏好中,我遇到以下例外情况:- 04-24 15:33:27.030: E/AndroidRuntime(23540): FATAL EXCEPTION: main 04-24 15:33:27.030: E/AndroidRuntime(23540): java.lang.NullPointerException 04-24 15:33:27.030: E/AndroidRuntime(23540): at android.preference.PreferenceMa

在我的共享偏好中,我遇到以下例外情况:-

    04-24 15:33:27.030: E/AndroidRuntime(23540): FATAL EXCEPTION: main
04-24 15:33:27.030: E/AndroidRuntime(23540): java.lang.NullPointerException
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:384)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:379)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at com.ht.webpageloadingapplication.ListViewSettingsActivity.loadCheckBoxSavedPreferences(ListViewSettingsActivity.java:89)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at com.ht.webpageloadingapplication.CustomAdapterSettings.getView(CustomAdapterSettings.java:185)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.AbsListView.obtainView(AbsListView.java:1469)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.ListView.makeAndAddView(ListView.java:1789)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.ListView.fillDown(ListView.java:708)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.ListView.fillFromTop(ListView.java:765)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.ListView.layoutChildren(ListView.java:1642)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.AbsListView.onLayout(AbsListView.java:1299)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.view.View.layout(View.java:7225)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.RelativeLayout.onLayout(RelativeLayout.java:943)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.view.View.layout(View.java:7225)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.FrameLayout.onLayout(FrameLayout.java:369)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.view.View.layout(View.java:7225)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1290)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1166)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1083)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.view.View.layout(View.java:7225)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.widget.FrameLayout.onLayout(FrameLayout.java:369)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.view.View.layout(View.java:7225)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.view.ViewRoot.performTraversals(ViewRoot.java:1181)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1901)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.os.Handler.dispatchMessage(Handler.java:130)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.os.Looper.loop(SourceFile:351)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at android.app.ActivityThread.main(ActivityThread.java:3820)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at java.lang.reflect.Method.invokeNative(Native Method)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at java.lang.reflect.Method.invoke(Method.java:538)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:901)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:659)
04-24 15:33:27.030: E/AndroidRuntime(23540):    at dalvik.system.NativeStart.main(Native Method)
这是我在获取共享偏好数据的活动中的函数:-

public boolean loadCheckBoxSavedPreferences(String key, int position) {

        SharedPreferences sharedPrefCheckBox = PreferenceManager
                .getDefaultSharedPreferences(this);
        if(position == 4 || position == 5 || position == 6 || position == 11 || position == 13 || position == 15 || position == 18 || position == 20)
        return sharedPrefCheckBox.getBoolean(key, true);
        else
            return sharedPrefCheckBox.getBoolean(key, false);
    }

//It shows error on very first line of shared preferece function. This is the line causing exception:-
SharedPreferences sharedPrefCheckBox = PreferenceManager
                    .getDefaultSharedPreferences(this);

我从适配器类调用这个函数。我已经调试了我的代码,看起来一切正常。

不要使用
getBaseContext

使用
yourAcivity。此


试试这个:

SharedPreferences settings  = getSharedPreferences("config", 0);
Boolean yourvariable        = settings.getBoolean(key, false);
如果使用此代码:

SharedPreferences sharedPrefCheckBox = PreferenceManager
                .getDefaultSharedPreferences(this);
在适配器类中,
表示适配器类实例,而不是从
上下文继承的类

要使用活动,您需要更改它,例如,通过将对活动的引用传递给适配器类(上下文通常在适配器构造函数中传递)。然后可以在类上为上下文创建一个变量。在构造函数中,设置作为参数传递到此变量的上下文。获取共享首选项时使用此变量


注意:某些适配器类具有可使用的
getContext()
方法。

请详细说明“this”指针实际是什么。“this”指的是当前活动。是的,但如何使用?查看其他响应我也尝试过getApplicationContext(),但为什么不起作用?适配器类及其构造函数是什么?它是否有
getContext()
方法?您可以使用that.public CustomAdapterSettings(Context Context){this.Context=Context;listViewSettingsActivity=new listViewSettingsActivity();layInflater=(LayoutFlater)Context.getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);}//这是适配器的构造函数,现在开始,使用传递给构造函数的
context
。将其保存在类变量中并用于获取首选项。您需要我将“上下文”传递给函数吗??