更改菜单中的公共浮动值[Android]

时间:2010-12-21 11:36:33

标签: java javascript android menu

基本上我正在创建一个应用程序,其中有一个球在屏幕上,球的大小由此代码确定

private static final float sBallDiameter = 0.011f;

有什么方法可以为用户创建菜单系统,例如像这里显示的弹出菜单

http://i.stack.imgur.com/WsHJX.png


这会改变球的大小,例如在上面的菜单上显示地图,交通,街景等等 - 我可以使用小,中,大

小,将sBallDiameter更改为0.009f 并将其大大改为0.018f

我希望你明白我的意思,但是如果有人能帮助我创建这个菜单类型的东西那就太棒了!

             **UPDATE :**

这是当前的菜单

private static final int Small= 1;


     public boolean onCreateOptionsMenu(Menu menu) {
        ((Activity) menu).onCreateOptionsMenu(menu);

        menu.add(0, Small, 0, "Small");

       return true;

    }
     public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case Small:


                   // here i want it to change the size down to something like 0.009f

                    return true;
            }
            return false;
     }

    public   float sBallDiameter = 0.013f;

基本上 - 我想要做的是在选择“小”的情况下这样做 - 它会减小“sBallDiameter”的大小

  • 我希望能更清楚一点 -

2 个答案:

答案 0 :(得分:0)

使用枚举而不是固定大小

public Enum BallSize{

  SMALL(0.09f),MEDIUM(0.11f),LARGE(0.018f);

  BallSize(float size)
  {
    this.size=size;
  }

  private final float size;
}

用户更改菜单后,将菜单项与Ballsize

进行比较

答案 1 :(得分:0)

以下是创建菜单的方法:Creating Menus

在res / menu / ball_menu.xml文件中定义菜单:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/menu_small"
          android:icon="@drawable/ic_menu_small"
          android:title="@string/small" />
</menu>

然后在你的活动中:

private static final float SMALL_SIZE = 0.1f;
private static final float BIG_SIZE = 0.3f;
private float mBallSize = SMALL_SIZE;

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.ball_menu, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
    case R.id.menu_small:
        setBallSize(SMALL_SIZE);
    default:
        return super.onOptionsItemSelected(item);
    }
}

private void setBallSize(float size) {
    this.mBallSize = size;
}