android - 如何在 Button 的点击事件中打开滑动菜单?

标签 android onclick slidingmenu buttonclick

我正在使用这个 link 实现滑动菜单.现在,如果我在 onCreate() 方法中使用这段代码,它就可以正常工作了。

我的简单问题是如何在按钮的单击事件上打开 slider ?

我使用了以下代码。

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final SlidingMenu menu = new SlidingMenu(this);

        Button mButton = (Button) findViewById(R.id.slidingMenu);
        mButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {
                menu.setMode(SlidingMenu.RIGHT);
                menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
                menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
                menu.setFadeDegree(0.5f);
                menu.attachToActivity(MainActivity.this,
                        SlidingMenu.SLIDING_CONTENT);
                menu.setMenu(R.layout.activity_menu);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

但是当我点击一个按钮时滑动菜单没有被打开。我没有收到任何错误。我该怎么做?

最佳答案

您应该在点击监听器之前设置菜单。在您的代码段中,您每次单击按钮时都会设置并附加菜单。但是,您应该只显示菜单,而不是在点击时附加它。

public class MainActivity extends Activity {

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final SlidingMenu menu = new SlidingMenu(this);
    menu.setMode(SlidingMenu.RIGHT);
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.5f);
    menu.attachToActivity(MainActivity.this, SlidingMenu.SLIDING_CONTENT);
    menu.setMenu(R.layout.activity_menu);

    Button mButton = (Button) findViewById(R.id.slidingMenu);
    mButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View arg0) {
          menu.showMenu();
          //or 
          //menu.toggle();
        }
    });
 }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
  }

}

关于android - 如何在 Button 的点击事件中打开滑动菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22530394/

相关文章:

java - 屏幕底部 float 横幅广告

Android 谷歌地图 apk 显示灰色瓷砖

Android Load Cache Only 不工作。离线显示 WebView

javascript - 在 onClick 和 if/else 问题上需要一些帮助

android - 滑动菜单示例不工作 : java. lang.IllegalStateException:RandomList 必须附加到 SherlockFragmentActivity

java - Green Dao 无法初始化 DAOConfig

javascript - 在 'click' 上重置 addClass 函数

javascript - 无法将 onclick 处理程序添加到 listitem 内的超链接标记

android - 如何在 Android Studio 上导入滑动菜单?

java - android,我如何以编程方式关闭二级滑动菜单