问问题
14210 次
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 回答