【问题标题】:disable buttons permanently throughout the aplication in android在android中的整个应用程序中永久禁用按钮
【发布时间】:2016-05-11 06:56:11
【问题描述】:

实际上我有 3 个按钮。用户应该单击任何一个按钮,然后所有 3 个按钮应该在整个应用程序中永久禁用(当我们关闭和打开应用程序时,按钮应该处于禁用状态)。我该如何实现这一点?

提前致谢。

【问题讨论】:

  • 使用 sharedPreference 保存状态

标签: android button


【解决方案1】:

在 SharePreferences 中定义行为:

例如在onResume中使用这个:

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
boolean enabled = pref.getBoolean("isEnabled",true);
myButton.setEnabled(enabled);

在按钮的onClick事件中这样做:

SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
pref.edit().putBoolean("isEnabled",false).commit();
myButton.setEnabled(false);

【讨论】:

  • 我尝试了上面的代码,但它在调用 Resume 方法时可以正常工作
  • onResume 总是被调用
【解决方案2】:

使用共享偏好来存储按钮的点击状态。并且每次在活动/片段中检查偏好值并根据偏好值禁用或启用。

【讨论】:

    【解决方案3】:

    您需要将按钮状态保存在 sharedpreferences 中,并根据您的情况在活动代码中启用/禁用它。

    if(stateofbuttonfromprefs) {
        button.setEnabled(false);
    } else {
        button.setEnabled(true);
    }
    

    【讨论】:

      【解决方案4】:

      您可以根据自己的目的使用 SharedPreference。更多信息请参考this

      在 onCreate 方法之前声明 SharedPreference

      SharedPreferences stateButton;
      SharedPreferences.Editor bEditor;
      

      在 onCreate() 上初始化它

      stateButton= getApplicationContext().getSharedPreferences("Button_State", 0);
      bEditor = stateButton.edit();
      

      将这两种方法添加到您的活动中

      public void setBState(boolean e) {
          bEditor.putBoolean("btn_state", e);
          bEditor.commit();
      }
      
      public boolean getButState(){
          return stateButton.getBoolean("btn_state", true);
      }
      

      调用它以了解您的按钮状态调用

      but.setEnabled(getBState());
      

      当你需要禁用按钮时,使用

      setBState(false);
      

      【讨论】:

      • @Naveen..它对我有用...发布您的代码(编辑您的问题)以便更好地了解您的问题
      • @Naveen..你必须设置 setBState(false);在你的所有按钮 onclicklistener
      • 当用户单击任何一个按钮时,我必须将所有 3 个按钮永久禁用。
      【解决方案5】:

      点击按钮

      button_login.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                  SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(); 
                  prefs.edit().putBoolean("btn_click", true).commit();
              }
          });
      

      在 Activity 的 OnCreate 方法中

      Boolean btnClick= prefs.getBoolean("btn_click", false);
      if(btnClick){
           //Disable Button
      }else{
           //Enable Button
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-04-13
        • 2019-10-08
        • 1970-01-01
        • 2020-12-13
        • 2018-01-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多