所以我需要让一个按钮在点击后消失,并在一分钟后再次出现。即使当我离开当前 Activity 并回到它并且一分钟还没有过去时,按钮也不应该出现。 我已经尝试过类似的方法,但它似乎不起作用:
SharedPreferences preferences = getSharedPreferences("preferences", Context.MODE_PRIVATE);
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
preferences.edit().putLong("timestamp", System.currentTimeMillis()).apply();
//some other logic
button.setVisibility(View.INVISIBLE);
}
});
if ((preferences.getLong("timestamp", 0) + 60000) == System.currentTimeMillis()) {
button.setVisibility(View.VISIBLE);
}
有没有人知道如何让它工作?或者有其他方法可以让这更容易吗?
最佳答案
你必须做三件事:
首先: 检查 Activity 的 onResume() 中的时间戳,并据此检查 setVisibility()。
将此代码添加到您的 Activity 中:
@override
protected void onResume(){
super.onResume()
if ((preferences.getLong("timestamp", 0) + 60000) <= System.currentTimeMillis()) {
rereshImageView.setVisibility(View.VISIBLE);
}else{
refreshImageView.setVisibility(View.GONE);
}
}
第二个:
使用这段代码再次显示按钮
new Handler().postDelayed(new Runnable(){
@Override
public void run() {
refreshImageView.setVisibility(View.VISIBLE);
}
} , 60000);
第三:
将 onResume() 中的条件更改为以下代码:
(等于等于变小等于)
(因为你不能保证恰好一分钟后你会回来。
if ((preferences.getLong("timestamp", 0) + 60000) <= System.currentTimeMillis()) {
refreshImageView.setVisibility(View.VISIBLE);
}
希望对您有所帮助。
关于android - 使用共享首选项单击后一分钟后显示 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51836211/