【问题标题】:Shop ImageButton to unlock [closed]商店ImageButton解锁[关闭]
【发布时间】:2020-04-19 04:08:11
【问题描述】:

my shop image

那是 imageButton,如果硬币不等于价格,我正在尝试每个按钮不可点击,加上一个代码,如果点击吐司警报“成功”,它将扣除

【问题讨论】:

标签: java android-studio android-layout imagebutton


【解决方案1】:

很简单!

首先,将android:clickable="false" 设置为布局文件中的所有图像按钮。

然后,使用 SharedPreferences 来保存您的硬币的价值

SharedPreferences.Editor editor = getSharedPreferences("PREFS", MODE_PRIVATE).edit();
        editor.putString("coins", "100");
        editor.apply();

然后您可以在 OnCreate 活动方法中验证硬币是否不等于价格:

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.your_layout);

    button100 = findViewById(R.id.yourbutton);
    button150 = findViewById(R.id.yourbutton);
    button300 = findViewById(R.id.yourbutton);
    button450 = findViewById(R.id.yourbutton);

    button100.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            counterMtd();
        }
    });

    button150.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            counterMtd();
        }
    });

    button300.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            counterMtd();
        }
    });

    button450.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            counterMtd();
        }
    });
}

private void counterMtd(){

    SharedPreferences preferences = getApplicationContext().getSharedPreferences("PREFS", MODE_PRIVATE);
    String coins = preferences.getString("coins", "0");
    int coinsCounter = Integer.parseInt(coins);

    if (coinsCounter >= 100){

        button100.setClickable(true);
        button150.setClickable(false);
        button300.setClickable(false);
        button450.setClickable(false);
    }

    if (coinsCounter >= 150){

        button100.setClickable(true);
        button150.setClickable(true);
        button300.setClickable(false);
        button450.setClickable(false);
    }

    if (coinsCounter >= 300){

        button100.setClickable(true);
        button150.setClickable(true);
        button300.setClickable(true);
        button450.setClickable(false);
    }

    if (coinsCounter >= 450){

        button100.setClickable(true);
        button150.setClickable(true);
        button300.setClickable(true);
        button450.setClickable(true);
    }
}

解释:

  • button100 是指可以购买 100 个硬币的按钮
  • button150是指可以购买150个硬币的按钮
  • button300是指可以购买300币的按钮
  • button450是指可以购买450币的按钮

希望对你有帮助!

【讨论】:

  • 非常感谢您的宝贵时间。我可以添加一些警报,至少像敬酒一样,至少发生了一些事情,或者如果不可点击,颜色是灰色的
  • 设置按钮颜色为灰色:button.setBackgroundColor(getResources().getColor(R.color.yourcolor));
  • 谢谢,现在的问题是点击后,并没有减少硬币
  • 我编辑了答案,请看一下,如果不起作用,请告诉我。
  • 添加编辑后的代码后,现在无法使用,无法点击,也无法减少任何硬币
猜你喜欢
  • 1970-01-01
  • 2017-05-10
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多