限制按钮点击次数

时间:2015-03-02 15:11:24

标签: java android button android-studio

我制作了一个应用程序,用户按下按钮进入另一个活动,但我只希望用户共按下此按钮5次。我尝试了下面的代码,但它并没有阻止用户按下按钮超过5次,所以我猜测应用程序需要以某种方式记住点击?

public void FoodClicks(View view){
            if(this.counter == 5){
                this.counter ++;
            }
            else {
                Button btn = (Button)findViewById(R.id.button);
                btn.setEnabled(false);
            }
        }

ActivityMain.xml:

<Button
android:id="@+id/button"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:layout_marginTop="38dp"
android:text="@string/addmeal" /> 

4 个答案:

答案 0 :(得分:1)

您必须将增加的号码分配给您的会员字段。评估也不正确。

public void FoodClicks(View view){
        if(this.counter < 5){
            this.counter += 1;
        } else {
            Button btn = (Button)findViewById(R.id.button);
            btn.setEnabled(false);
        }
    }

更重要的是,观点论点是什么?实际的按钮?然后你可以直接使用它。

public void FoodClicks(View view){
        if(this.counter < 5){
            this.counter += 1;
        } else {
            ((Button) view).setEnabled(false);
        }
    }

答案 1 :(得分:1)

您最近调用您的方法,将其添加到您的xml:

<Button
  ...
  android:onClick = "FoodClicks"
 /> 

或在Activity方法监听器onCreate中实现,该监听器将为您调用代码:

    Button btn = (Button)findViewById(R.id.button);
    btn.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
             FoodClicks(v);
         }
     });

此外,你必须改变你的状况

this.counter == 5

this.counter < 4

记得初始化this.counter = 0;在Activity

答案 2 :(得分:1)

因为你使用这个按钮打开另一个活动,这样当你回到它时会导致你的活动重新加载...所以计数器将被重新初始化 解决问题的一种方法是将该计数器存储在像Application类

这样的保存区域

答案 3 :(得分:1)

button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {

        int clicks = 0;
        clicks++;

        if (clicks >= 5){
            button.setEnabled(false);
        }

        SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", this.MODE_PRIVATE);
        SharedPreferences.Editor editor = prefs.edit();
        editor.putInt("clicks", clicks);
        editor.apply();
    }
});

使用sharedPreferences存储点击次数,因此,如果您的按钮执行任何操作,则可以存储点击次数。