单击另一个按钮后永久启用一个按钮。甚至重新启动应用程序

时间:2019-06-15 19:01:30

标签: java android android-button isenabled

我有2个按钮Btn1和Btn2。 Btn2已禁用,但单击Btn1时,即使重新启动应用程序,也应永久启用Btn2。

按钮Btn1,Btn2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Btn1 = (Button)findViewById(R.id.EnabledBtn);
    Btn2 = (Button)findViewById(R.id.disbledBtn);

    Btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
            pref.edit().putBoolean("isEnabled",false).apply();
            Btn2.setEnabled(true);
        }
    });
}

@Override
protected void onResume() {
    super.onResume();
    SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
    boolean enabled = pref.getBoolean("isEnabled",true);
    Btn2.setEnabled(enabled);


}

}

1 个答案:

答案 0 :(得分:0)

将代码更改为


SharedPreferences pref;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    pref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);

    Btn1 = (Button)findViewById(R.id.EnabledBtn);
    Btn2 = (Button)findViewById(R.id.disbledBtn);

  /*when the app is launched, it will check if the button should be 
    enabled by getting the value from sharedpreferences. If the value was 
    not already set, then it chooses false as the default value*/

    boolean enabled = pref.getBoolean("isEnabled",false);
    Btn2.setEnabled(enabled);

  /*When btn1 is clicked, you want to store value true to 
    sharedpreferences so that it will be the value that will be 
    retrieved when app is restarted*/

    Btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            pref.edit().putBoolean("isEnabled",true).apply();
            Btn2.setEnabled(true);
        }
    });
}

请检查代码中的注释,以了解为什么需要进行更改。