0

我希望仅在单击此按钮的前 3 次才显示此消息,并且即使重新启动应用程序也不会再显示此消息,我想知道实现它的最佳方法。我计划创建一个数据库并在按下按钮时在该数据库中输入值,并将我的 toast 逻辑放在 if 语句中。我想知道是否有更好的方法可以在不使用数据库的情况下做到这一点。

4

4 回答 4

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()方法启动此侦听器

于 2012-09-06T06:03:20.340 回答
1

我认为Shared Preferences比 DB 更好。

您只需添加count(int)共享首选项。

于 2012-09-06T05:55:03.300 回答
0

您可以使用以下代码:

button.setOnClickListener(new OnClickListener() {
public void onClick(View view) {

        Toast.makeText(app.getBaseContext(),"Your message", 
            Toast.LENGTH_SHORT).show();
}

});

于 2012-09-06T05:58:12.153 回答
0

考虑将数据保存在内存中的某个位置。像这样的琐碎数据不应该进入数据库。这将是一个糟糕的决定。

于 2012-09-06T05:58:32.147 回答