我正在制作Spinning wheel for prize,我可以在3次点击后禁用点击事件但无法在另一天启用点击,我只想让用户每天点击3次并禁用当天的点击事件仅在第二天启用
public class MainActivity extends AppCompatActivity implements SpinningWheelView.OnRotationListener<String> {
private SpinningWheelView wheelView;
private TextView rotate,spinCount,spinPoint;
int COUNT=0;
int points=0;
private SharedPreferences mPrefs;
private SharedPreferences.Editor editor;
private String sharedPref="MY_PREF";
int count= 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPrefs=getSharedPreferences(sharedPref,Context.MODE_PRIVATE);
mPrefs.getInt("count",0);
editor=mPrefs.edit();
wheelView = (SpinningWheelView) findViewById(R.id.wheel);
rotate = (TextView) findViewById(R.id.rotate);
spinCount=(TextView)findViewById(R.id.spin_count);
spinPoint=(TextView)findViewById(R.id.spin_point);
wheelView.setItems(R.array.dummy);
wheelView.setOnRotationListener(this);
rotate.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View v) {
int i = mPrefs.getInt("count",0);
if (i<3){
count++;
editor.putInt("count",count);
editor.apply();
wheelView.rotate(80, 3000, 50);
}else {
rotate.setEnabled(false);
//how can it be enabled on another day
}
}
});
}
我可以通过共享首选项实现它,但可以通过清除数据和缓存来清除共享首选项,这对我的应用程序不利,因为我想将它们存储在云端。
答案 0 :(得分:0)
最简单的解决方案
isTodayClickable = true / falseOnCreate()获取时间戳并设置clicable true / clicked和 单击日期在3次单击后保存在共享pref中启用它 如果有日期的共享pref,则将其保存在pref写入逻辑中 如果日期超过一天,请将其设置为true并保存 在pref
答案 1 :(得分:0)
但无法在另一天启用点击
您可以存储第一次点击的日期/时间,并在24小时后重置,或在午夜重置。 如您所知,不推荐,因为客户可以轻松绕过这些限制。
回到主要问题
如何每天仅限3次点击事件
1。为该客户端安装创建一个UUID: The Description in google's docs远不是好事。
2. 在服务器的数据库/表格中添加一个字段,以获取此UUID的点击次数。 UUID是您的主要密钥。每次点击后增加点击次数。要向服务器发送这么简单的请求,您实际上并不需要库,但AsyncHttpClient可以轻松实现。
如果互联网不可用,请告知您的用户。不要继续离线,因为他们很容易作弊。
3. 将第一次点击的日期/时间存储在您的服务器中。
4. 在SQL数据库中创建一个简单的存储过程,重置00:00的日期。
答案 2 :(得分:0)
使用按钮点击次数在共享首选项中创建日期对象库。 在第二天创建新日期和地图与共享偏好存储日期。 如果匹配则禁用按钮否则启用。这是下面的例子。
button = (Button)findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int clicks = 0;
clicks++;
if (clicks >3){
button.setEnabled(false);
}
SharedPreferences prefs = this.getSharedPreferences("myPrefsKey", this.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("clicks", clicks);
editor.putString("date",date.toString());
editor.apply();
}
});
快乐的编码!!