Мне нужно проверить пользователя, чтобы выбрать только один элемент в день, используя таймер или диспетчер аварийных сигналов в Android. Есть ли лучший способ его разработки, так что легко проверить, не получает ли пользователь не более одного элемента в день. У меня есть список из десяти элементов, отображаемых в виде списка. Пользователь получает элемент из списка. Он должен получить только один предмет. Если он попытается снова, ему следует предупредить, что один пункт только один раз в день.Проверка только один раз в день для пользователя из списка в Android
общественный класс MainActivity расширяет активность {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Effects.getInstance().init(this);
ListView lv = (ListView) findViewById(R.id.listView);
List<ItemDetail> itemList = createItems(10);
// Load animation
final Animation anim = AnimationUtils.loadAnimation(this, R.anim.fade_anim);
final ArrayAdapter<ItemDetail> aAdpt = new ArrayAdapter<ItemDetail>(this, android.R.layout.simple_list_item_1,
itemList);
lv.setAdapter(aAdpt);
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, final View view, final int position, long id) {
MediaPlayer mPlayer = MediaPlayer.create(MainActivity.this, R.raw.gum_bubble_pop);
mPlayer.start();
anim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
long now = System.currentTimeMillis();
long lastCheckedMillis = 0;
long diffMillis = now - lastCheckedMillis;
if(diffMillis >= (3600000 * 24)) {
// store now (i.e. in shared prefs)
// do the check
} else {
// too early
}
if(aAdpt.getCount()==9) {
Toast.makeText(MainActivity.this, "You can get only one gift per day "+now, Toast.LENGTH_LONG).show();
}
else {
ItemDetail item = aAdpt.getItem(position);
aAdpt.remove(item);
}
}
});
view.startAnimation(anim);
}
});
}
private List<ItemDetail> createItems(int size) {
List<ItemDetail> result = new ArrayList<ItemDetail>();
for (int i = 0; i < size; i++) {
ItemDetail item = new ItemDetail(i, "Gift " + (i + 1));
result.add(item);
}
return result;
}
}