【问题标题】:Make a button unclickable from another Activity using sharedpreferences使用 sharedpreferences 使按钮无法从另一个 Activity 中单击
【发布时间】:2014-06-15 17:37:48
【问题描述】:

当我使用共享首选项单击 ActivityB 中的按钮时,我想让 ActivityA 中的按钮不可点击。

一个代码 sn-p 会很棒。

谢谢大家!

【问题讨论】:

    标签: android button android-activity sharedpreferences


    【解决方案1】:

    那么你需要做两件事:

    1. 在ActivityB中检测按钮点击,并设置或清除SharedPreferences值

    2. 在 ActivityA 中根据 SharedPreferences 值启用/禁用按钮

    第 1 步(活动 B):

    将此添加到 Button 的 XML 属性中:

    android:onClick="enableButtonA"
    

    然后在ActivityB中创建这个方法:

    public void enableButtonA(View view)
        {
        //use the default preferences for this App
        SharedPreferences settings=getSharedPreferences(PreferenceManager.getDefaultSharedPreferences(this));
    
        SharedPreferences.Editor prefEditor=settings.edit();
        //set the enabled value to false, I would assume you'll want to change this to a toggle
        prefeditor.putBoolean("buttonA_enabled", false);
        prefEditor.commit();
        }
    

    第 2 步(活动 A):

    @Override
    protected void onResume()
        {
        super.onResume();
    
        //check the preferences value and enable or disable the button -- default is enabled
        boolean isEnabled=PreferenceManager.getDefaultSharedPreferences(this).getBoolean("buttonA_enabled", true);
    
        Button button=(Button)this.findViewById(R.id.buttonA);
    
        button.setEnabled();
        }
    

    【讨论】:

      【解决方案2】:

      首先,您需要在单击按钮时将value 放入SharedPreferences,然后在ActivityAonCreate 中,您需要检查SharedPenter code herereferences 中的值是否存在。

      activityB的onClick按钮

      b.setOnClickListener(new OnClickListener() {
      
              @Override
              public void onClick(View v) {
                          PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit().putString("button", "1").commit();
      
                  //change actvity here
      
              }
          });
      

      活动A的oncreate()

      if(PreferenceManager.getDefaultSharedPreferences(youractivity.this).getString("button","").lenght() == 0) 
      {
         yourbutton.setEnabled(false);
      };
      

      【讨论】:

      • 在 ActivityB 我有这个错误:“点击无法解析为变量”
      • @MobiusApps 输入“1”而不是点击。 putString("按钮", "1")
      • 我之前尝试过,但出现此错误 The method putString(String, String) is undefined for the type SharedPreferences
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-24
      • 1970-01-01
      • 1970-01-01
      • 2018-04-22
      • 2013-10-13
      • 2018-05-17
      相关资源
      最近更新 更多