Java 从PreferenceActivity开始在主活动中做事情?
我有一行Java 从PreferenceActivity开始在主活动中做事情?,java,android,android-intent,android-preferences,Java,Android,Android Intent,Android Preferences,我有一行info.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,number\u config)在“我的案例”下方为微调器选择。(它使用微调器设置的值设置EditText的textsize) 然后我有一个preferences活动,其中我有一个switchpreference,我希望上面的一行在开关设置为“On”时处于“活动”状态,在开关设置为“off”时处于非活动状态。因此,文本大小在设置为off时不会改变。你会怎么做 多谢各位 我的微调器已选择:
info.setTextSize(TypedValue.COMPLEX\u UNIT\u SP,number\u config)代码>在“我的案例”下方为微调器选择。(它使用微调器设置的值设置EditText的textsize)
然后我有一个preferences活动,其中我有一个switchpreference,我希望上面的一行在开关设置为“On”时处于“活动”状态,在开关设置为“off”时处于非活动状态。因此,文本大小在设置为off时不会改变。你会怎么做
多谢各位
我的微调器已选择:
public void onItemSelected(AdapterView<?> parent, View v, int position, long id) {
switch (position) {
case 0:
config_textsize = "10.0f".toString();
break;
case 1:
config_textsize = "12.0f".toString();
break;
...
}
String number_config = Float.valueOf(config_textsize);
/*This line */ EditText info.setTextSize(TypedValue.COMPLEX_UNIT_SP, number_config);
}
这是我在xml中的首选项:
<SwitchPreference
android:key="EditTextSize"
android:title="Text Size"
android:summary="Change text size when editing" />
试试:
如果打开,则返回true;如果未打开,则返回false。这只是一个假设,我从未使用过SwitchPreference,但请尝试一下
编辑
创建一个返回整数的方法:
private int getPosition(){
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(YourActivity.this);
boolean switchOn = prefs.getBoolean("EditTextSize",
false);
int position=-1;
if(switchOn==false){
position=0;
}else if(switchOn==true){
position=1
}
return position;}
请参阅我的编辑。我希望这能起作用,但在没有看到更多代码的情况下,我真的不知道……在这里设置på类时:getDefaultSharedReferences(YourActivity.this);我收到的错误是:在Scope中无法访问WidgetConfig类型的封闭实例我从未遇到过这样的错误…您是否用自己的活动替换了“YourActivity”,我的意思是,如果您的活动名为DemoActivity,您应该设置“DemoActivity.this”。请参阅我的编辑。创建一个返回位置值的方法,如edited Edit。然后在切换之前的onItemSelected中调用此方法。这行吗?
private int getPosition(){
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(YourActivity.this);
boolean switchOn = prefs.getBoolean("EditTextSize",
false);
int position=-1;
if(switchOn==false){
position=0;
}else if(switchOn==true){
position=1
}
return position;}