Изменить значение публичного плавания в меню [Android] - PullRequest
0 голосов
/ 21 декабря 2010

В основном я делаю приложение, в котором на экране есть шарик, а размер шарика определяется этим кодом

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 голосов
/ 21 декабря 2010

Вот как вы создаете меню: Создание меню .

Определение меню в файле 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;
}
0 голосов
/ 21 декабря 2010

Используйте Enum вместо фиксированного размера

public Enum BallSize{

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

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

  private final float size;
}

И после того, как пользователь изменит меню, сравните пункт меню с Ballsize

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...