Кнопочное меню Android - PullRequest
       1

Кнопочное меню Android

1 голос
/ 20 декабря 2011

Я пытаюсь создать меню для пожертвований для моего приложения.Я понял, что когда пользователь нажимает кнопку «пожертвовать», появляется больше кнопок, сообщающих, сколько.Теперь я хочу, чтобы кнопки количества исчезали, если они снова нажимают ту же кнопку.Я хочу, чтобы обычный DonateButton остался.Как бы я это сделал?

Я уже установил его как невидимое, используя purchaseButton.setVisibility(View.GONE);

Вот код для нажатия кнопки и появления других кнопок:

    public void onClick(View v) {
        switch (v.getId()) {

        case R.id.DonateButton:

              purchaseButton.setVisibility(View.VISIBLE);
              purchaseButton2.setVisibility(View.VISIBLE);
              purchaseButton3.setVisibility(View.VISIBLE);

        case R.id.Donate:
                if(BillingHelper.isBillingSupported()){
                        BillingHelper.requestPurchase(mContext, "donate");
                        // android.test.purchased or android.test.canceled or android.test.refunded
        } else {
                Log.i(TAG,"Can't purchase on this device");
        }

                break;
        default:
                // nada
                Log.i(TAG,"default. ID: "+v.getId());
                break;

case R.id.Donatetwo:
    if(BillingHelper.isBillingSupported()){
            BillingHelper.requestPurchase(mContext, "donate2");
            // android.test.purchased or android.test.canceled or android.test.refunded
} else {
    Log.i(TAG,"Can't purchase on this device");
}

    break;

case R.id.Donatethree:
    if(BillingHelper.isBillingSupported()){
            BillingHelper.requestPurchase(mContext, "donate3");
            // android.test.purchased or android.test.canceled or android.test.refunded
} else {
    Log.i(TAG,"Can't purchase on this device");
}

    break;
        }
}

Снимок экрана того, что я имею в виду:

URL-адрес ИЗОБРАЖЕНИЯ (ДАЛЕЕ НЕ ДАЕТ 10 РЕПУТАЦИЙ): http://i.stack.imgur.com/AMdhS.png

Я пытаюсь сказать следующее.

  • Приложение появляется просто показывая "Пожертвовать!"Кнопка.=>
  • Пользователь нажимает кнопку «Пожертвовать!»Кнопка.=>
  • Появятся кнопки «Пожертвовать 1 доллар», «Пожертвовать 3 доллара» и «Пожертвовать 5 долларов».=> Мне нужна помощь здесь
  • Пользователь хочет закрыть кнопки «Пожертвовать 1 доллар», «Пожертвовать 3 доллара» и «Пожертвовать 5 долларов».=>
  • Чтобы закрыть их, они нажимают «Пожертвовать!»это была кнопка, которую они использовали, чтобы открыть все это.=>
  • «Пожертвовать 1 доллар», «Пожертвовать 3 доллара» и «Пожертвовать 5 долларов» исчезают.

Я хочу, чтобы они все еще позволяли им открывать и закрывать эти кнопкихотя один раз.

Ответы [ 2 ]

1 голос
/ 20 декабря 2011

Попробуйте это.

Используйте метод getVisibility(), чтобы узнать видимое состояние кнопки.

int visibility;


visibility = button.getVisibility();
if(visibility == View.VISIBLE) {
    button.setVisibility(View.INVISIBLE);
} else {
    button.setVisibility(View.VISIBLE);
}

Вы должны проверить это для каждой кнопки.


Я предложу еще одну вещь.

Возьмите глобальную переменную и используйте ее в качестве уведомителя, используйте приведенный ниже код во всех функциях нажатия кнопки.

boolean again = false;

if (again) {
    // make all invisible
    again = false;
} else {
    // make all visible
    again = true;
}
1 голос
/ 20 декабря 2011

должна делать простая переменная состояния.

поместите это в вашу область определения поля:

boolean areButtonAmountVisible = false;

и этот код как ваш onClick():

case R.id.DonateButton:

   if( areButtonAmountVisible )
   {
       areButtonAmountVisible = false;
       purchaseButton.setVisibility(View.GONE);
       purchaseButton2.setVisibility(View.GONE);
       purchaseButton3.setVisibility(View.FONE);
   }
   else
   {
       areButtonAmountVisible = true;
       purchaseButton.setVisibility(View.VISIBLE);
       purchaseButton2.setVisibility(View.VISIBLE);
       purchaseButton3.setVisibility(View.VISIBLE);
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...