【发布时间】:2014-06-15 17:37:48
【问题描述】:
当我使用共享首选项单击 ActivityB 中的按钮时,我想让 ActivityA 中的按钮不可点击。
一个代码 sn-p 会很棒。
谢谢大家!
【问题讨论】:
标签: android button android-activity sharedpreferences
当我使用共享首选项单击 ActivityB 中的按钮时,我想让 ActivityA 中的按钮不可点击。
一个代码 sn-p 会很棒。
谢谢大家!
【问题讨论】:
标签: android button android-activity sharedpreferences
那么你需要做两件事:
在ActivityB中检测按钮点击,并设置或清除SharedPreferences值
在 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();
}
【讨论】:
首先,您需要在单击按钮时将value 放入SharedPreferences,然后在ActivityA 的onCreate 中,您需要检查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);
};
【讨论】: