-1
4

2 回答 2

5

一个简单的布尔标志怎么样?

在开始时将其设置为 false - 一旦用户单击 - 将其设置为 true。

private boolean clicked = false; // this is a member variable

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button btn = (Button) findViewById(R.id.button1);

    btn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            if(clicked) {
                 Toast.makeText(getActivity(), "You already clicked!", 1000).show();
            } else {
                 Toast.makeText(getActivity(), "You clicked for the first time!", 1000).show();
            }

            clicked = true;
        }
    }
}

请注意,“clicked”布尔变量必须是您的 Activity 的成员变量,否则在 onClick() 中将不可见。作为成员变量的变量仅仅意味着它属于它所在的类,而不仅仅是出现在特定的方法中。在上面的代码中,“btn”将是一个“普通”变量,因为它只出现在 onCreate()(一个方法)中,而“clicked”是为 Activity(它所在的类)声明的,因此是一个成员多变的。

如果您想在应用程序关闭并重新打开后用户点击的情况下进行保存,请查看SharedPreferences

SharedPreferences prefs = this.getSharedPreferences("com.example.app", Context.MODE_PRIVATE);

boolean clicked;

clicked = prefs.getBoolean("yourkey", false); // get a value, use whatever key you want

prefs.edit().putBoolean("yourkey", clicked).commit();  // save a value, use same key
于 2013-08-18T21:00:19.433 回答
3

如果用户单击按钮,您可以在共享首选项中保存标志。下次,如果存在该标志,您可以检查共享首选项。

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
    SharedPreferences pref = getSharedPreferences("promo", MODE_PRIVATE);
    boolean activated = pref.getBoolean("activated", false);
    if(activated == false) {  // User hasn't actived the promocode -> activate it 
        SharedPreferences.Editor editor = pref.edit();
        editor.putBoolean("activated", true);
        editor.commit();
    } 
}
于 2013-08-18T21:05:35.077 回答