从overflowMenu调用方法?

时间:2015-10-19 00:59:50

标签: java android menu menuitem android-menu

我有一个带有简单动画的android代码。基本上,在点按事件时,按钮从左上角移动到右下角,同时放大。我有方法,moveButton();和moveButtonBack();哪些是使用transitionManager实际移动按钮的方法。问题是,当我从我的

中调用这些方法时
 public boolean onOptionsItemSelected(MenuItem item) { }

方法,该方法不被调用。我知道这不是我的方法的错,因为那些在点击事件上工作正常。请帮我弄清楚为什么我的moveButton()和moveButtonBack()方法没有被调用。我已经观看并阅读了几篇关于overFlowMenu的教程。

以下是我为菜单制作项目的xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"             tools:context=".MainActivity">


<item android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="1"
    app:showAsAction="never" />


<item
    android:id="@+id/MoveButtonExecution"
    android:orderInCategory = "2"
    app:showAsAction = "never"
    android:title = "Move button down!"
    />

<item
    android:id="@+id/MoveButtonBackExecution"
    android:orderInCategory = "3"
    app:showAsAction = "never"
    android:title = "Move button up!"
    />
</menu>

以下是应该调用方法的java代码:

 public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();
    Button myButton=(Button) findViewById(R.id.mybuttonid);

    switch (item.getItemId()) {

        case R.id.action_settings:
       item.setTitle("THIS DOES NOTHING");
            myButton.setText("No settings in animations");
            myButton.setBackgroundColor(Color.GREEN);

        case R.id.MoveButtonExecution:

            myButton.setText("moving");
            moveButton();


        case R.id.MoveButtonBackExecution:
            moveButtonBack();
            myButton.setText("movingback");
    }

如果您需要查看方法moveButton和moveButtonBack,请随时询问,但我再次确定方法不是问题。相反,我认为问题出在java代码中,我调用方法。非常感谢你的帮助,我真的很感激。

0 个答案:

没有答案