我希望此消息仅在此按钮被单击的前三次显示,并且在此之后,即使应用程序重新启动,我也想知道实现它的最佳方法。我打算创建一个数据库并在按下按钮时在该数据库中输入值,并将我的toast逻辑放在if语句中。我想知道在没有使用数据库的情况下是否有更好的方法。
答案 0 :(得分:3)
如果更好的意思是更容易,那么您可以使用SharedPreferences机制。
共享首选项基本上是一个属性集,对于整个活动是通用的,或者可以由每个活动单独使用。
class Listener implements OnClickListener{
final private SharedPreferences prefs;
Listener(SharedPreferences prefs){
this.prefs=prefs;
}
public void onClick(View view) {
int count = prefs.getInt("toastCount",0);
if(count>=3) return;
//do something else here
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("toastCount", count+1);
editor.commit();
}
}
您可以使用活动中的getPreferences()
或getSharedPreferences()
方法启动此列表工具
答案 1 :(得分:1)
我认为Shared Preferences比DB好。
您只需在共享Prefernces中添加count(int)
即可。
答案 2 :(得分:0)
您可以使用此代码:
button.setOnClickListener(new OnClickListener() {
public void onClick(View view) {
Toast.makeText(app.getBaseContext(),"Your message",
Toast.LENGTH_SHORT).show();
}
});
答案 3 :(得分:0)
考虑将数据保存在内存中的某个位置。像这样的琐碎数据不应该进入数据库。这将是一个糟糕的决定。