如何使按钮永久不可点击

时间:2014-01-10 18:31:08

标签: java android android-button

我正在Android上创建一个登录系统。并且我希望注册Button在单击时不可点击。我正在使用此代码:

final Button register = (Button) findViewById(R.id.register);
register.setOnClickListener(new View.OnClickListener() {        
    @Override
    public void onClick(View v) {

        register.setEnabled(false);
        Intent register = new Intent(getApplicationContext(), register.class);
        startActivity(register);            
    }
});

这很有效,但我希望Button即使在重新启动应用程序或手机时仍然无法点击。有没有人知道一种方法,即使应用程序关闭,也可以永久地使Button无法点击?

2 个答案:

答案 0 :(得分:0)

在这种情况下,您可以采取悲观的方法并使用android:clickable =“false”禁用布局中的按钮(默认情况下),并在需要注册的情况下启用它。

答案 1 :(得分:0)

正如我在评论部分已经说过的,这样的事情可能有用:

public class MyActivity extends Activity {

    private static final String KEY_IS_BUTTON_CLICKABLE = "key_clickable";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        ...

        final Button register = (Button) findViewById(R.id.register);
        SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
        boolean isClickable = sharedPreferences.getBoolean(KEY_IS_BUTTON_CLICKABLE, true);
        register.setEnabled(isClickable);

        if(isClickable) {
            register.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    register.setEnabled(false);

                    PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit()
                            .putBoolean(KEY_IS_BUTTON_CLICKABLE, false);

                    Intent register = new Intent(getApplicationContext(), register.class);
                    startActivity(register);
                }
            });
        }
    }
    ...
}