Android 滑动菜单侦听器

Android 滑动菜单侦听器,android,menu,listener,slidingmenu,Android,Menu,Listener,Slidingmenu,在这个项目中,我实现了。为了实现此库,我正在尝试创建一个MenuActivity类,该类处理所有菜单项滑块选项、onClick侦听器等。目前,该类如下所示: public class MenuActivity extends SlidingActivity{ SharePrefManager sm = new SharePrefManager(MenuActivity.this); RelativeLayout ask_a_question, life_prediction;

在这个项目中,我实现了。为了实现此库,我正在尝试创建一个MenuActivity类,该类处理所有菜单项滑块选项、onClick侦听器等。目前,该类如下所示:

public class MenuActivity extends SlidingActivity{

    SharePrefManager sm = new SharePrefManager(MenuActivity.this);
    RelativeLayout ask_a_question, life_prediction;
    TextView aries,taurus,gemini,cancer,leo,virgo,libra,scorpio,sagittarius,capricon,aquarius,pisces;
    String isLoggedIn; 

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setBehindContentView(R.layout.menu);

        ask_a_question = (RelativeLayout)findViewById(R.id.ask_a_question);

        HashMap<String, String> checkLogin = new HashMap<String, String>();
        checkLogin = sm.getuserDetails();
        isLoggedIn = checkLogin.get(SharePrefManager.KEY_ISLOGEDIN);

        ask_a_question.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                if (isLoggedIn.equals(0))
                {
                    Toast.makeText(getApplicationContext(), "You must be logged in", Toast.LENGTH_SHORT).show();
                }

                else
                {
                    Intent i = new Intent("com.example.btshome.ASKPAGE");
                    startActivity(i);
                }

            }
        });


    }


}
在以下实现中,发生以下错误:

04-24 10:46:45.081: E/AndroidRuntime(1956): FATAL EXCEPTION: main
04-24 10:46:45.081: E/AndroidRuntime(1956): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.btshome/com.example.btshome.MainActivity}: java.lang.NullPointerException
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.os.Looper.loop(Looper.java:137)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.main(ActivityThread.java:4745)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at java.lang.reflect.Method.invokeNative(Native Method)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at java.lang.reflect.Method.invoke(Method.java:511)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at dalvik.system.NativeStart.main(Native Method)
04-24 10:46:45.081: E/AndroidRuntime(1956): Caused by: java.lang.NullPointerException
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:153)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.example.btshome.library.SharePrefManager.<init>(SharePrefManager.java:35)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.example.btshome.MenuActivity.<init>(MenuActivity.java:17)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.example.btshome.MainActivity.<init>(MainActivity.java:14)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at java.lang.Class.newInstanceImpl(Native Method)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at java.lang.Class.newInstance(Class.java:1319)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
04-24 10:46:45.081: E/AndroidRuntime(1956):     ... 11 more
04-2410:46:45.081:E/AndroidRuntime(1956):致命异常:main
04-24 10:46:45.081:E/AndroidRuntime(1956):java.lang.RuntimeException:无法实例化活动组件信息{com.example.btshome/com.example.btshome.MainActivity}:java.lang.NullPointerException
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.app.ActivityThread.access$600(ActivityThread.java:130)
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.os.Handler.dispatchMessage(Handler.java:99)上
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.os.Looper.loop(Looper.java:137)
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.app.ActivityThread.main(ActivityThread.java:4745)上
04-24 10:46:45.081:E/AndroidRuntime(1956):位于java.lang.reflect.Method.Invokenactive(本机方法)
04-24 10:46:45.081:E/AndroidRuntime(1956):位于java.lang.reflect.Method.invoke(Method.java:511)
04-24 10:46:45.081:E/AndroidRuntime(1956):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-24 10:46:45.081:E/AndroidRuntime(1956):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-24 10:46:45.081:E/AndroidRuntime(1956):在dalvik.system.NativeStart.main(本机方法)
04-24 10:46:45.081:E/AndroidRuntime(1956):由以下原因引起:java.lang.NullPointerException
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.content.ContextWrapper.GetSharedReferences(ContextWrapper.java:153)
04-24 10:46:45.081:E/AndroidRuntime(1956):位于com.example.btshome.library.SharePrefManager。(SharePrefManager.java:35)
04-24 10:46:45.081:E/AndroidRuntime(1956):位于com.example.btshome.MenuActivity.(MenuActivity.java:17)
04-24 10:46:45.081:E/AndroidRuntime(1956):位于com.example.btshome.MainActivity。(MainActivity.java:14)
04-24 10:46:45.081:E/AndroidRuntime(1956):位于java.lang.Class.newInstanceImpl(本机方法)
04-24 10:46:45.081:E/AndroidRuntime(1956):位于java.lang.Class.newInstance(Class.java:1319)
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.app.Instrumentation.newActivity(Instrumentation.java:1053)上
04-24 10:46:45.081:E/AndroidRuntime(1956):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
04-24 10:46:45.081:E/AndroidRuntime(1956):。。。还有11个

那么这里出了什么问题??是活动课吗?我是否以不同的方式处理这个问题

它是在您的
SharePrefManager
的初始化中,特别是
SharePrefManager.java:35
。很可能是使用
null
上下文初始化的
ContextWrapper
04-24 10:46:45.081: E/AndroidRuntime(1956): FATAL EXCEPTION: main
04-24 10:46:45.081: E/AndroidRuntime(1956): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.btshome/com.example.btshome.MainActivity}: java.lang.NullPointerException
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.access$600(ActivityThread.java:130)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.os.Looper.loop(Looper.java:137)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.main(ActivityThread.java:4745)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at java.lang.reflect.Method.invokeNative(Native Method)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at java.lang.reflect.Method.invoke(Method.java:511)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at dalvik.system.NativeStart.main(Native Method)
04-24 10:46:45.081: E/AndroidRuntime(1956): Caused by: java.lang.NullPointerException
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:153)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.example.btshome.library.SharePrefManager.<init>(SharePrefManager.java:35)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.example.btshome.MenuActivity.<init>(MenuActivity.java:17)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at com.example.btshome.MainActivity.<init>(MainActivity.java:14)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at java.lang.Class.newInstanceImpl(Native Method)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at java.lang.Class.newInstance(Class.java:1319)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
04-24 10:46:45.081: E/AndroidRuntime(1956):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974)
04-24 10:46:45.081: E/AndroidRuntime(1956):     ... 11 more