【问题标题】:How to call method sliding menu from another class?如何从另一个类调用方法滑动菜单?
【发布时间】:2015-06-19 16:42:46
【问题描述】:

我使用 jeremyfeinstein 创建菜单,如下所示: 导入android.app.Activity;

import com.e_campus.tesapp.R;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class Menu extends Activity {

    public void setupMenu(){
        SlidingMenu slidingMenu = new SlidingMenu(this);
        slidingMenu.setMode(SlidingMenu.LEFT);
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        slidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);
        slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
        slidingMenu.setFadeDegree(0.35f);
        slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
        slidingMenu.setMenu(R.layout.slide_menu);
    }
}

之后,我在另一个类中调用了这个滑动菜单方法“setupMenu”:

public class C_News extends Activity{


   @Override
   protected void onCreate(Bundle savedInstanceState){
       super.onCreate(savedInstanceState);
       overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_right);
       setContentView(R.layout.activity_home);
       TextView title = (TextView) findViewById(R.id.titlePage);
       title.setText("News & Information");
       Menu sliding = new Menu();
       sliding.setupMenu();

   }

}

但是,当我运行显示错误

原因:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法 'android.content.res.Resources android.content.Context.getResources()'

【问题讨论】:

  • 我认为从菜单类的 onCreate 中调用 setupMenu 方法会更好。那么你将永远不会有一个未初始化的 Menu 类。可能这也将解决您的空指针。

标签: android class methods menu sliding


【解决方案1】:

您可以在其他活动中重复使用

public class Menu {

public static void setupMenu(Context context){
    SlidingMenu slidingMenu = new SlidingMenu(context);
    slidingMenu.setMode(SlidingMenu.LEFT);
    slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    slidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);
    slidingMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    slidingMenu.setFadeDegree(0.35f);
    slidingMenu.attachToActivity(context, SlidingMenu.SLIDING_CONTENT);
    slidingMenu.setMenu(R.layout.slide_menu);
}

}

【讨论】:

  • 所以改变slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);到slidingMenu.attachToActivity(context, SlidingMenu.SLIDING_CONTENT);
  • 我之前通过slidingmenu.toggle()显示菜单,但是一旦按照上面的方法制作,就会显示错误“Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.jeremyfeinstein .slidingmenu.lib.SlidingMenu.toggle()' 在空对象引用上"
猜你喜欢
  • 1970-01-01
  • 2012-05-27
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-20
相关资源
最近更新 更多